自己学习的阶段性成果,分享给大家,希望大家多鼓励、指导。
资源内容包括所有源码、图片及音效资源,适合有一定编程基础的Python初学者。
游戏功能总结:
1、游戏的暂停、重启功能。
2、游戏可以显示得分及英雄战机状态。
3、英雄战机可以用键盘、鼠标两种模式操作,并且可以实现自动发弹和手动发弹模式。
4、英雄战机限制子弹数量,子弹不足时音效与正常音效不同。
5、英雄战机可以发射炸弹清理当前屏幕内的敌机和敌机子弹。
6、系统可随机生成多种类型的补给(目前有炸弹和子弹)。
7、系统可随机,以不同概率事件生成多种敌机类型,敌机外观、飞行速度、子弹速度、生命值以及被摧毁时的效果各不相同。
8、所有飞机均有不同的子弹发射、被击中和被摧毁的音效。
游戏技术总结:
1、键盘事件监听及响应,包括键盘按下后持续响应,以及多键组合的动作响应。
2、鼠标事件监听及响应,包括识别鼠标键按下和鼠标移动事件。
3、利用pygame.time实现游戏画面刷新率控制。
4、自定义事件生成及响应,包括利用pygame.time定义的定时Event和利用pygame.event手工定义Event,并解决对象利用Event与主进程def功能交互。
5、封装文本显示,解决中文显示,并支持指定位置显示和居中显示。
6、利用pygame.sprite类及sprite.Group封装pygame下可用的按钮类,直接支持鼠标点击后确认点击对象,并以Event绑定按钮对象相关响应事件。
7、利用pygame.sprite封装战机类,并封装相关子类,每个sprite可以自主控制创建子类对象,并根据需要添加至主进程sprite.Group中。
8、利用sprite.groupcollide实现碰撞检测,并演示各种碰撞处理逻辑,包括默认碰撞双方清除,清除一方,以及碰撞后根据条件进行部分清除。
9、对groupcollide返回的collide碰撞对象组进行遍历操作。
10、演示各种条件pygame.sprite对象的创建、加入Group以及自定义条件kill。
11、实现pygame.sprite对象的动画效果。
12、实现pygame游戏暂停及重新启动。
13、利用pygame.sprite实现连续滚动背景。
14、图片、音效资源预加载。
15、利用数列实现代码简化对象属性分配和动画效果加载。
16、try..exception异常处理。
资源链接:https://pan.baidu.com/s/1-bKJFIEMghuU42mJFElSnQ 提取码:78ds
环境说明:
IDE:Pycharm CE
引用库:pygame, random