欢迎加入我们卧虎藏龙的python讨论qq群:729683466
●导 语 ●
很久很久以前
公众号写过一个飞机大战
全部是方块组成的
太简单了
今天给大家分享一个新的飞机大战
“豪华版”飞机大战
代码及相关资源获取
1:关注“python趣味爱好者”公众号,回复“新飞机大战2 ”获取源代码。
2:加入群聊:729683466。在群文件中下载源代码以及相关资料。
效果演示
ss
往期精选
以前写的一个简单的飞机大战小游戏
这是个非常久远的文章了,大概是接近两年前,虽然这个游戏显得很简陋,但是另一方面来说,这个程序是非常好理解的。非常适合初学者学习。
🛠
开发工具
python3.6.4
第三方库:pygame
讲解部分
一:新游戏特点
相比于原来简陋的飞机大战,新的游戏有了背景音乐,游戏图片,还有了战机被击毁的特效,并且敌方飞机还增加了血量条。可玩性更强了。同时,自己的飞机多了重生的击毁,而且还可以在交战中加强自己的火力。可以与越来越强的敌方飞机作战。
二:主体结构
虽然我们的新游戏增加了很多新内容,但是本质上并没有变,基本的代码逻辑还是和以前一模一样。就是初始化游戏界面,然后按照设置好的帧率更新游戏界面,更新游戏界面后,界面上飞机和子弹的位置就变成了最新的位置。由于人眼的视觉暂留效果,看起来就像是连续一样。
更新游戏界面的方法就是下面这样
pygame.display.flip()
三:获取键盘操作
获取键盘操作,就是用下面的代码,控制飞机移动主要是按照键盘的上下左右键。
获取了向上移动的键盘信息,就会自动调用向上移动的函数,同理,如果按了向下的键,就会调用向下移动的信息,在原来我们编写的飞机大战中,这个方向控制程序更简单,主要就是,用一个变量turn表示飞机的方向,如果是向上,那么turn=[0,1],表示方向向上如果要更改飞机移动方向,直接修改这个turn也可以。
而现在的游戏代码是这样的。
for event in pygame.event.get():
if event.type == 12: # 如果用户按下屏幕上的关闭按钮,触发QUIT事件,程序退出
pygame.quit()
sys.exit()
if delay == 0:
delay = 60
delay -= 1
# 获得用户所有的键盘输入序列(如果用户通过键盘发出“向上”的指令,其他类似)
key_pressed = pygame.key.get_pressed()
if key_pressed[K_w] or key_pressed[K_UP]:
our_plane.move_up()
if key_pressed[K_s] or key_pressed[K_DOWN]:
our_plane.move_down()
if key_pressed[K_a] or key_pressed[K_LEFT]:
our_plane.move_left()
if key_pressed[K_d] or key_pressed[K_RIGHT]:
our_plane.move_right()
四:背景音乐
首先要设置一个相应音乐的函数
pygame.mixer.music.play(-1)
然后把音乐放在当前的文件夹中,然后载入音乐。载入音乐的函数主要放在了setting里面,里面不仅仅有背景音乐,还有子弹发射音乐,敌方飞机被击毁的音乐,自己挂了的音乐。
载入音乐的函数就是,用的是pygame里面的相应函数。
pygame.mixer.music.load(os.path.join(BASE_DIR, "material/sound/game_music.wav"))
五:Pygame精灵组
这个飞机大战与之前的游戏最大的区别就是,这个游戏存储飞机的方式不是列表,而是用到了pygame的精灵组,定义飞机类的时候直接继承pygame,然后就可以用精灵组的方式存储飞机类了,好处就是每个飞机都可以直接调用pygame里面的函数。
关于精灵组的使用方法,在很久以前,我写过一个比较复杂的塔防游戏,大家可以去回顾一下。
作者|齐
编辑|齐
感谢大家观看
有钱的老板可打赏一下小编哦
扫描二维码
关注我们
QQ群:729683466
◰
参考来源
代码来源:github