前言:
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__(