Python游戏之Pygame——太空飞机大战(二)

本文介绍了使用Python的Pygame库制作太空飞机大战游戏中敌机的实现,包括敌机的非直线飞行、发射子弹、被击中处理以及坠毁时的包裹释放。敌机被子弹击中会根据防御值和子弹破坏力计算损失,坠毁时可能随机释放包裹。同时,还展示了简单的ReleasedPackage类,用于处理包裹的位置更新和出界情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇(Python游戏之Pygame——太空飞机大战(一))文章简单对游戏进行了说明,给出了部分配置文件以及子弹类。下面给出敌机类和方法。
大家直到,飞机必须能非,最好能非直线飞行。因此必须有X_speed和Y_speed。飞机还要能发射子弹或导弹等,飞机有多少个发射位,多久发射一次,还有飞机被子弹击中或者敌机与英雄战机相撞等各种情况都是需要处理的。
下面先给出敌机类和方法。

class EnemyPlane(Sprite):
    def __init__(self, flightType, layerGroup, ePlaneGroup):
        self.groups = layerGroup, ePlaneGroup
        self.type = flightType
        self._layer = ENEMY_PLANES[self.type]['LAYER']
        super().__init__(self.groups)

        self.image = pygame.image.load(IMAGE_PATH + ENEMY_PLANES[self.type]['IMAGE']).convert_alpha()
        self.rect = Rect((random.randint(60, SCREEN_SIZE[0] - 60), 0), self.image.get_size())
        self.move_direction = random.choice([-1, 0, 1])     # 1表示向右, 0表示直线飞行

        self.defence = ENEMY_PLANES[self.type]['DEFENCE']
        self.destroyValue = ENEMY_PLANES[self.type]['COLLISION']

        self.bulletType = random.choice(list(ENEMY_BULLETS_TYPE.values()))
        self.missileType = random.choice(list(ENEMY_MISSILE_TYPE.values()))
        self.bShootCount = ENEMY_PLANES[self.type]['B_COUNT']
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值