战机类游戏,要解决敌机几个问题:
1、自身的绘制和相关属性管理(可以实现多种类型的战机)
2、自身的移动控制(可直线运动、可左摇右摆S随机变化)
3、自身被击中的效果以及不同类型敌机的生命值(都是一枪毙命就太没意思了)
4、所发射子弹的管理(实现开火的概率随机,子弹的初始位置控制,以及子弹超出屏幕范围之后自动销毁,防止不必要的计算资源占用。)
先看整体框架
然后我们逐段拆开看一下具体实现
1、自身的绘制和相关属性管理(可以实现多种类型的战机)
class EnemySprite(pg.sprite.Sprite):
# 敌机初始化
def __init__(self, _enemytype):
# 重载sprite父类
super().__init__()
# 敌机类型,方便后面的代码实现不同类型敌机的资源加载。
self.enemytype = _enemytype
# 加载本类型敌机图片
self.image = pg.image.load(ENEMY_FILE[_enemytype])
# 敌机本类型生命值
self.life = ENEMY_LIFE[_enemytype]
# 敌机本类型分值
self.score = ENEMY_SCORE[_ene