相关文件
相关游戏素材(图片和音频等)源于网络,侵歉删。
需要源代码的小伙伴私信小编,或者关注小编的公众号【Python日志】
开发工具
Python版本:3.7.4
相关模块:
pygame模块;
以及一些python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理简介
首先,我们打开原版游戏的开始界面,发现是这样的:
具体而言,我们的思路是先定义一个按钮类,来模拟原始游戏中的“开始游戏”,“游戏说明”和“离开游戏”这三个按键的功能:
'''按钮类'''
class Button(pygame.sprite.Sprite):
def __init__(self, text, fontpath, fontsize, position, color_selected=(255, 0, 0), color_default=(255, 255, 255)):
pygame.sprite.Sprite.__init__(self)
self.text = text
self.color_selected = color_selected
self.color_default = color_default
self.font = pygame.font.Font(fontpath, fontsize)
self.font_render = self.font.render(text, True, color_default)
self.rect = self.font_render.get_rect()
self.rect.center = position
'''更新函数: 不断地更新检测鼠标是否在按钮上'''
def update(self):
mouse_pos = pygame.mouse.get_pos()
if self.rect.collidepoint(mouse_pos):
self.font_render = self.font.render(self.text, True, self.color_selected)
else:
self.font_render = self.font.render(self.text, True, self.color_default)
'''绑定到屏幕上'''
def draw(self, screen):
screen.blit(self.font_render, self.rect)
主要的原理就是不断检测鼠标是否在对应的按钮区域,如果在,则对按钮的颜色做出改变(这里是变成红色),否则按钮使用默认的颜色(这里是白色),以此来向玩家表明这是可点击的按钮。
然后,我们来实例化它三次来添加这三个按钮到游戏的开始界面中:
'''游戏开始界面'''
class StartGameInterface():
def __init__(self, cfg):
self.cfg = cfg
self.play_btn = Button('开始游戏', cfg.FONTPATH_CN, 50, (cfg.SCREENSIZE[0]//2, cfg.SCREENSIZE[1] - 400))
self.intro_btn = Button(<