pygame飞机大战用精灵组(sprite)的层(layer)编写(九)BOSS寂寞了,想要对手

本文介绍了如何在pygame飞机大战游戏中使用精灵组和层(layer)添加英雄机,以解决BOSS寂寞无对手的问题。代码示例展示了英雄机的创建,并且包含了生命条的显示功能。虽然存在一个英雄机在特定位置可隐藏的BUG,但作者选择保留,以供自娱自乐。

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

BOSS 说一个人的舞台,好寂寞,没有对手的日子,好孤独,神呀,赐予我一个 吧。

我们的英雄该登场了。

英雄的代码前面的日志里已经写过了,稍微改下,就能用了。加了生命条的显示。

完整代码如下:

""" 英雄机的类
基本的调用函数
set_pos(self,x,y) 设置飞机初始位置

press_move(self) 持续移动

"""
from setting import *
from lifebar import *

class HeroPlane(pygame.sprite.Sprite):
    def __init__(self):
        self._layer = 1
        self.groups = allgroup, herogroup
        pygame.sprite.Sprite.__init__(self, self.groups)
        # 默认图像及尺寸
        self.image = pygame.image.load('images/hero/hero.png')
        self.rect = self.image.get_rect()
        self.mask = pygame.mask.from_surface(self.image)
        #动起来的速度是 2,设置成零的话,以后就动不了了。
        self.speed = 6
        #飞机的x,y初始速度,不动。
        self.x_speed = 0
        self.y_speed = 0
        # 移动按键储存
        self.key_down_list = []
        self.HP = 100
        self.HPFULL = 100
        lifebar = Lifebar(self)

    #计算飞机位置,精灵组会自动调用
    def update(self):
        """ 
        更新飞机位置
            飞机位置超出 scene时,不进行运算
        """
        #计算飞机的位置
        self.rect.x += self.x_speed
        self.rect.y += self.y_speed
        #限制飞机在场景scene
        if self.rect.x <= 0:
            self.rect.x = 0
        elif self.rect.x > SCENEWIDTH - self.rect.width:
            self.rect.x = SCENE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值