相关文件
关注小编,私信小编领取哟!
当然别忘了一件三连哟~~
对了大家可以关注小编的公众号哟~~
Python日志
开发环境
Python版本:3.6.4
相关模块:
pygame模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理介绍
开心消消乐我相信还是有很多的小伙伴是玩过的,今天给大家安利的Python版本的,操作也是非常简单的,只需要自己通过移动鼠标就可以操作“小动物”,只要是三个或者三个以上的一样的小动物就看消除得分。
大概了解了游戏规则之后,我们就可以开始写这个游戏啦~首先,进行一下游戏初始化操作:
'''brick : 218*218
animal : 40*40
bg : 850*600 '''
# print(dir()) # 已导入的包
pygame.init() # 初始化
pygame.mixer.init()
pygame.display.set_caption('开心消消乐 —— 彳余大胆')
tree = manager.ManagerTree()
m = manager.Manager(0, 0)
sound_sign = 0
world_bgm = pygame.mixer.Sound(manager.SoundPlay.world_bgm)
game_bgm = pygame.mixer.Sound(manager.SoundPlay.game_bgm)
while True:
if m.level == 0:
if sound_sign == 0:
game_bgm.stop()
world_bgm.play(-1)
sound_sign = 1
else:
if sound_sign == 1:
world_bgm.stop()
game_bgm.play(-1)
sound_sign = 0
if m.level == 0:
tree.draw_tree(m.energy_num, m.money)
else:
m.set_level_mode(m.level)
sprite_group = m.draw()
if m.type == 0:
m.eliminate_animal()
m.death_map()
m.exchange(sprite_group)
m.judge_level()
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == pygame.K_q or event.key == pygame.K_ESCAPE:
exit()
if event.type == QUIT:
sys.exit()
m.level, m.energy_num, m.money = tree.mouse_select(event, m.level, m.energy_num, m.money)
m.mouse_select(event)
m.mouse_image()
pygame.display.flip()
if __name__ == "main":
main()
然后就是一些代码示意:
树界面的示意图和代码实现:
class ManagerTree:
"""管理树类"""
__screen_size = (900, 600)
screen = pygame.display.set_mode(__screen_size, DOUBLEBUF, 32)
fruit_list = []
fruit_image = pygame.image.load(Tree.fruit).convert_alpha()
fruit_width = fruit_image.get_width()
fruit_height = fruit_image.get_height()
type = 0 # 0树界面,1加精力界面
energy_full = False # 精力已满标志 初始未满
money_empty = False # 银币不足
def load_text(self, text, position, txt_size=25, txt_color=(255, 255, 255)):
my_font = pygame.font.SysFont(None, txt_size)
text_screen = my_font.render(text, True, txt_color)
self.screen.blit(text_screen, position)
def draw_tree(self, energy_num, money_num):
"""画tree"""
Tree(Tree.tree, (0, 600)).draw(self.screen)