pygame飞机大战用精灵组层编写英雄系列(一)英雄也问出处,界面的菜单选择

这篇博客介绍了如何使用pygame创建一个飞机大战游戏的选择界面,玩家可以使用键盘选择不同的英雄飞机,并显示飞机的基本信息和动态图像。在选择完成后,游戏进入主界面,玩家将操作所选飞机。博客详细阐述了实现界面的各个步骤,包括初始化飞机、选择框、动态显示框,以及处理选择逻辑。最后展示了运行效果,并提供了解决图像错误提示的方法和代码下载链接。

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

前言:

BOSS系列写完了,还可以增加些BOSS子弹的发射方式,例如螺旋线,就是把射击的间隔缩短,每颗子弹按照时间间隔发射,每次的发射角度在前次上递增。看起来就是螺旋线发射了。

我的代码发射的子弹和发射的方式有点乱,只是为了展示效果,真正要好玩,还得细化,把子弹和发射方式控制一下,有简单到难。代码有些地方冗余,可以简化,这些工作,等有空在慢慢调试。

接下来写点英雄系列的日志吧。

在BOSS系列里,英雄出师未捷身先死,一点英雄气概也没看到,完全是个我躲,我躲,我躲的闪客。

那就给英雄写点吧。

还得从选择界面进入英雄系列。

本来想用文字的,网上的成熟的代码很多,功能很强大,可是还是想自己码一个。简单的,不抽象的。

实现要求如下:

1、在启动主程序前,期待选择界面,里面有四架英雄飞机可以选择(因为我只有四架飞机的素材),可以通过左右按键(a,d)来选。

2、选择过程中,能看到所选英雄飞机的基本信息,动态图像。

3、选择完成后,出现主界面,飞机角色为所选角色。

游戏界面选择框架如下:selectmenu.py

1、初始化四家飞机

2、初始化选择框

3、初始化动态显示框

4、初始化默认飞机基本信息

因为界面退出后,没有什么用了,重置self.kill()

建立一个循环,用于处理选择的步骤  。

选择完成,在main.py里保存飞机信息

selectmenu里的所有精灵self.kill()自毁

先新建一个类SelectMenu。用来设置飞机图像和选择框,选择框也是一个图像,比飞机图像开框大些,飞机位置透明。

中心对齐后看起来就像是套在上面。

class SelectMenu(pygame.sprite.Sprite):
    def __init__(self, imagename):
        self._layer = 3
        self.groups = selectgroup
        pygame.sprite.Sprite.__init__(self, self.groups)
        self.image = pygame.image.load(imagename)
        self.rect = self.image.get_rect()

    def update(self):
        pass

    def move(self, direction, distant=100):
        if direction == 'LEFT':
            self.rect.x -= distant
        elif direction == 'RIGHT':
            self.rect.x += distant

    def set_pos(self, x, y):
        self.rect.x = x
        self.rect.y = y

飞机图像不动,选择是,框移动。

class SelectHero(pygame.sprite.Sprite):
    def __init__(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值