最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

【pygame游戏】用Python实现一个蔡徐坤大战篮球的小游戏,可还行?【附源码】

来源:博客园


(资料图)

准备工作开发环境

Python版本:3.7.8

相关模块:requests模块;tqdm模块;pyfreeproxy模块;pyechats模块;以及一些python自带的模块。

效果预览开始界面

游戏规则

wasd 控制人物的移动,空格启动律师函炸毁全部篮球。

代码实现

导入模块

import pygameimport sysimport tracebackimport osimport CXKimport enemyimport bulletimport supplyfrom pygame.locals import *from random import *

游戏主界面

#游戏主界面def ui():    #循环播放背景音乐    pygame.mixer.music.play(-1)    #初始化界面按键图片并获取图片的矩形位置    start_game_image = pygame.image.load("images/start_game.png").convert_alpha()    start_game_image_rect = start_game_image.get_rect()    game_rules_image = pygame.image.load("images/game_rules.png").convert_alpha()    game_rules_image_rect = game_rules_image.get_rect()    game_quit_image = pygame.image.load("images/game_quit.png").convert_alpha()    game_quit_image_rect = game_quit_image.get_rect()    #初始化游戏规则图片并获取图片的矩形位置    rules_image = pygame.image.load("images/游戏玩法.png").convert_alpha()    back_image = pygame.image.load("images/back.png").convert_alpha()    back_image_rect =  back_image.get_rect()    #标志是否在主界面    is_ui = True    #帧率    clock = pygame.time.Clock()    #主界面循环    while True:        #获取事件信息        for event in pygame.event.get():            #如果点击右上角退出            if event.type == QUIT:                #退出程序                pygame.quit()                sys.exit()        #如果是主界面        if is_ui:            #绘制背景            screen.blit(background,(0,0))            #更改主界面按键图片的矩形位置并绘制主界面按键            start_game_image_rect.left,start_game_image_rect.top = (width - start_game_image_rect.width)//2,height - 500            screen.blit(start_game_image,start_game_image_rect)            game_rules_image_rect = game_rules_image.get_rect()            game_rules_image_rect.left,game_rules_image_rect.top = (width - game_rules_image_rect.width)//2,start_game_image_rect.bottom+50            screen.blit(game_rules_image,game_rules_image_rect)            game_quit_image_rect.left,game_quit_image_rect.top = (width - game_quit_image_rect.width)//2, game_rules_image_rect.bottom+50            screen.blit(game_quit_image,game_quit_image_rect)            #检测用户的鼠标操作            #如果用户按下鼠标左键            if pygame.mouse.get_pressed()[0]:                #获取鼠标坐标                pos = pygame.mouse.get_pos()                #如果用户点击”开始游戏“                if start_game_image_rect.left < pos[0] < start_game_image_rect.right and start_game_image_rect.top < pos[1] < start_game_image_rect.bottom:                    #调用主函数                    main()                #如果用户点击”退出游戏“                if game_quit_image_rect.left < pos[0] < game_quit_image_rect.right and game_quit_image_rect.top < pos[1] < game_quit_image_rect.bottom:                    pygame.quit()                    sys.exit()                #如果用户点击”游戏规则“                if game_rules_image_rect.left < pos[0] < game_rules_image_rect.right and game_rules_image_rect.top < pos[1] < game_rules_image_rect.bottom:                    #离开主界面                    is_ui = False

关键词: 游戏规则 事件信息 退出游戏