美文网首页
14.8 pygame射击游戏(五)

14.8 pygame射击游戏(五)

作者: 阿达老师 | 来源:发表于2018-10-24 08:38 被阅读0次

爆炸效果

我们给子弹击中敌舰增加一下爆炸效果。首先,我们把爆炸图片添加到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():
此时游戏效果如下:

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()
  1. 飞机坠毁
    我们在main.py里增加我方飞机坠毁的声音:game_over_sound.play()

项目待补充点

到此为止,项目的主题功能就完成了。其实,一个好的游戏是可以不断完善的。就像我们的项目,也有很多待完善的点:

  1. 我放飞机爆炸效果

  2. 吃高级子弹

  3. 加高级敌舰
    此外,我们项目里还有一些待修复的bug,你发现了吗?我们来一起找找

  4. 敌方飞机有可能出不来

  5. game_over音乐播放不出来

  6. 如果没有击落一屏的4架敌舰,后续敌舰就不出来了
    这些隐藏的bug就靠小朋友们来修复啦,加油!

发布游戏

现在,这个游戏可以在我们自己的电脑上运行了,那怎么在别人的电脑上运行呢?这就要用到发布了。游戏发布,就是把我们写好的代码打包好分发给别人的过程。python的代码发布需要用到pyinstaller,详细的pyinstaller介绍可以看这篇文章:pyinstaller简洁教程 | Legendtkl,这块内容后续会讲解。

相关文章

网友评论

      本文标题:14.8 pygame射击游戏(五)

      本文链接:https://www.haomeiwen.com/subject/wxqttqtx.html