刚开始学习python,想熟悉一下pygame模块,做了个小游戏。
首先需要了解一下精灵与精灵组的概念,精灵是一个保存着图像数据和图像在屏幕上位置,并提供了更新与删除功能的类,而
精灵组则是多个精灵的集合。在游戏中,每一个角色都可以用精灵来表示,并且通过精灵组的形式来更新删除。
这是定义的一个精灵类
以上定义了所有的游戏角色精灵
此外,pygame还提供了游戏时钟,可以设置屏幕更新速度,而游戏中角色出现的快慢则有定时器决定.
self.clock = pygame.time.Clock() #游戏时钟 self.clock.tick(60) #置于游戏循环中
pygame.time.set_timer(CREATE_ENEMY_EVENT,1000)#设置定时器
pygame.time.set_timer(HERO_FIRE_EVENT, 500)
整个游戏的框架应该分为游戏初始化与游戏循环,在游戏初始化中创建好精灵与精灵组后,接着在游戏循环中进行更新与显示
在循环中还包括对事件的监听。
在事件监听函数中有大概要做的三件事,一是监听用户是否按下退出游戏键,若是则要卸载所有模块后退出游戏。二是要监听
定时器事件,若发生则需创建新的角色使其出现并添加至精灵组中,用于游戏循环中的更新。三是要监听用户的操作,使游戏角色按用户命令动作。
最后则是碰撞检测,pygame提供了两种碰撞检测方法,一种是检测精灵组与精灵组之间的,另一种是检测精灵与精灵组之间的
在碰撞检测函数中,只需基于游戏需要,将相应的游戏角色在碰撞后销毁即可。