合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
[ ## 爆炸效果 我们给子弹击中敌舰增加一下爆炸效果。首先,我们把爆炸图片添加到assets里。修改enemy.py文件: 1)在init方法里增加`down_image_arr`属性: ``` self.down_image_arr = (pygame.image.load('../assets/enemy1_down1.png'), pygame.image.load('../assets/enemy1_down2.png'), pygame.image.load('../assets/enemy1_down3.png'), pygame.image.load('../assets/enemy1_down4.png')) ``` 2)修改update方法: ``` def update(self): if self.is_survive(): self.rect.y += self.speed score_surface = self.sys_font.render('life:' + str(self.life), False, RED) self.image.blit(score_surface, (10, 0)) else: if self.downIndex > 3: self.kill() else: self.image.blit(self.down_image_arr[self.downIndex], self.down_image_arr[self.downIndex].get_rect()) self.downIndex += 1 ``` 在main.py的游戏主循环里的判断子弹是否击中敌舰中,我们判断敌舰是否存活。只有存活的子弹需要检测碰撞:`if enemy.is_survive():`。 此时游戏效果如下: ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181024083632.png) plane爆炸的效果和敌舰类似,小朋友们可以自己实现哈。 ## 游戏声音 到这里,我们的游戏画面部分就完成了。接下来,我们给游戏添加声音。 我们首先把音乐导入到项目的assets/sound中。在constant.py中将这些音乐初始化进来: ``` pygame.init() # 游戏初始化 pygame.mixer.init() # 混音器初始化 # 游戏背景音乐 pygame.mixer.music.load('../assets/sound/game_music.wav') pygame.mixer.music.set_volume(0.2) # 子弹发射音乐 bullet_sound = pygame.mixer.Sound("../assets/sound/bullet.wav") bullet_sound.set_volume(0.2) # 我方飞机挂了的音乐 me_down_sound = pygame.mixer.Sound("../assets/sound/game_over.wav") me_down_sound.set_volume(0.2) # 敌方飞机挂了的音乐 enemy1_down_sound = pygame.mixer.Sound("../assets/sound/enemy1_down.wav") enemy1_down_sound.set_volume(0.2) ``` 1. 加载游戏背景音乐 在main.py中,我们播放背景音乐:`pygame.mixer.music.play(-1)` 2. 发射子弹 在bullet.py中的new_bullet方法中,我们播放子弹发射方法。`bullet_sound.play()` 3. 击中敌舰 在enemy.py中的update方法中,我们播放敌舰被击中的方法。 ``` # 敌舰炸毁图片第一帧 if self.downIndex == 0: enemy1_down_sound.play() ``` 4. 飞机坠毁 我们在main.py里增加我方飞机坠毁的声音:`game_over_sound.play()` ## 项目待补充点 到此为止,项目的主题功能就完成了。其实,一个好的游戏是可以不断完善的。就像我们的项目,也有很多待完善的点: 1. 我放飞机爆炸效果 2. 吃高级子弹 3. 加高级敌舰 此外,我们项目里还有一些待修复的bug,你发现了吗?我们来一起找找 1. 敌方飞机有可能出不来 2. game_over音乐播放不出来 3. 如果没有击落一屏的4架敌舰,后续敌舰就不出来了 这些隐藏的bug就靠小朋友们来修复啦,加油! ## 发布游戏 现在,这个游戏可以在我们自己的电脑上运行了,那怎么在别人的电脑上运行呢?这就要用到发布了。游戏发布,就是把我们写好的代码打包好分发给别人的过程。python的代码发布需要用到pyinstaller,详细的pyinstaller介绍可以看这篇文章:[pyinstaller简洁教程 | Legendtkl](http://legendtkl.com/2015/11/06/pyinstaller/),这块内容后续会讲解。 ]()