欢迎加入我们卧虎藏龙的python讨论qq群:729683466
导语
以前讲过一些简单的小游戏
比如贪吃蛇,推箱子
今天讲一个酷炫的彩图游戏
《太空大战》
玩法和飞机大战差不多
按键盘的上下左右
移动飞船躲避陨石
空格键发射子弹
尽可能多的用子弹击毁陨石
相关资源
代码获取
1:关注“python趣味爱好者”公众号,回复“ game50”获取源代码。
2:加入群聊:729683466。在群文件中下载源代码以及相关资料。
效果展示 ·
ss
开发工具 ·
python3.6.4
第三方库:pygame,random,os
往期推荐 ·
讲解部分 ·
与我们之前讲过的普通贪吃蛇,飞机大战,推箱子不同。这个《太空大战》游戏更加复杂,需要载入各种图片,声响。而我们之前讲过的游戏,都是由简单的集合图形直接构造的,非常简单。
所以在这一篇文章中,我们重点学习一些如何载入各种素材。
一:游戏素材的准备
在开始编写代码前,我们需要先准备一些素材,主要就是声响素材以及图片素材。
声响素材就是下面的样子
飞船发射子弹的声响,击中陨石的声响,以及飞船被陨石击中的声响等。我们把这些声响打包放在一个sounds文件夹里面。编写代码时随时调用这些声响即可。
图片素材是这样的。
相比之下,图片素材更加直观,就是各种形状的陨石图片,飞船的图片,以及飞船发射的子弹的图片。还有更为重要的。就是子弹爆炸的整个过程,这是一个连帧变化的图片组。只有这些图片组按顺序切换,才能达到爆炸的效果。
二:载入各种素材
首先我们看看如何载入音响,以及如何使用这些声音,我们用到的是pygame里面的载入音响的函数。
menu_song = pygame.mixer.music.load(path.join(sound_folder, "menu.ogg"))
其中的sound_folder是之前定义的声响的路径。menu.ogg是声响的文件名。
载入以后,用pygame里面专门播放背景音乐的函数播放。
pygame.mixer.music.play(-1)
载入图片的方法也类似。比如说我们要载入背景图片。也就是用下面的这个代码。
background = pygame.image.load(path.join(img_dir, 'starfield.png')).convert()
pygame.image.load就是专门载入图片的代码。
载入图片后,我们可以用get_rect获取图片的像素点坐标。
background_rect = background.get_rect()
最后,我们看看如何载入各种大小不一的陨石,首先我们要用一个列表,将所有的陨石的名称全部放在列表里面。
下面这些就是各种大小不一的陨石。
陨石名称的列表如下
需要产生这些陨石的时候,我们直接载入陨石图片即可,如果要多生成一些大陨石,可以用random设置生成随机数。增加大陨石生成的比例。
扫二维码|关注我们
QQ群:729683466
参考来源
@Author: tasdik
作者:caolezuishuai
参考链接:https://github.com/caolezuishuai/space