跳至正文
View Categories

< 1 min read

植物大战僵尸8 #

  1. 游戏闯关设置
  2. 游戏结束触发
  3. 游戏结束界面

游戏闯关设置 #

本小节主要介绍了游戏闯关(进入下一级)的设置。在子弹类class PeaBullet()中添加函数nextLevel()

#class PeaBullet(pygame.sprite.Sprite):
    #7闯关方法
    def nextLevel(self):
        MainGame.score += 20
        MainGame.remnant_score -=20
        for i in range(1,100):
            if MainGame.score==100*i and MainGame.remnant_score==0:
                    MainGame.remnant_score=100*i
                    MainGame.shaoguan+=1
                    MainGame.produce_zombie+=50

游戏结束触发 #

本小节主要介绍游戏结束的触发设置,包括游戏胜利触发进入下一level和游戏失败触发结束。

(1)游戏胜利触发进入下一level。在子弹类class PeaBullet()中hit_zombie()的函数中,

zombie.hp -= self.damage后面添加if判断语句。

#class PeaBullet(pygame.sprite.Sprite):
    #7 新增,子弹与僵尸的碰撞
    def hit_zombie(self):
                #僵尸掉血
                #zombie.hp -= self.damage
                if zombie.hp <= 0:
                    zombie.live = False #当全部僵尸都死亡的时候触发
                    self.nextLevel()

(2)游戏失败触发结束。在僵尸类class Zombie()中的move_zombie()函数中,

elf.rect.x -= self.speed后添加if判断语句

class Zombie(pygame.sprite.Sprite):
 #9 僵尸的移动
    def move_zombie(self):
            #self.rect.x -= self.speed
            if self.rect.x < -80: #当僵尸x坐标小于-80,即触发
                #8 调用游戏结束方法
                MainGame().gameOver()

游戏结束方法 #

本小节主要介绍了游戏结束方法。在主程序class MainGame()类中添加gameOver()函数

#1 主程序
#class MainGame():
    # 程序结束方法
    def gameOver(self):
        MainGame.window.blit(self.draw_text('游戏结束', 50, (255, 0, 0)), (300, 200))
        pygame.time.wait(400)
        global GAMEOVER
        GAMEOVER = True

小结 #

本节主要介绍了植物大战游戏中游戏闯关设置,游戏结束的触发及方法