13.道具系统-2

火力增强 检测道具碰到玩...

火力增强

检测道具碰到玩家碰撞的代码,替换 pass 为调用新增player.powerup()

    if hit.type == 'gun':
        player.powerup()

Player类,添加两个属性:power 活力等级   和 power_time  等级变更时间

    self.power = 1
    self.power_time = pygame.time.get_ticks()

Player类,添加powerup() 方法:

def powerup(self):
    self.power += 1
    self.power_time = pygame.time.get_ticks()

Player类,修改 shoot() 方法:
当 power =1 原来的一颗子弹; power>=2 两颗子弹

def shoot(self):
    now = pygame.time.get_ticks()
    if now - self.last_shot > self.shoot_delay:
        self.last_shot = now
        if self.power == 1:
            bullet = Bullet(self.rect.centerx, self.rect.top)
            all_sprites.add(bullet)
            bullets.add(bullet)
            shoot_sound.play()
        if self.power >= 2:
            bullet1 = Bullet(self.rect.left, self.rect.centery)
            bullet2 = Bullet(self.rect.right, self.rect.centery)
            all_sprites.add(bullet1)
            all_sprites.add(bullet2)
            bullets.add(bullet1)
            bullets.add(bullet2)
            shoot_sound.play()

Player类,update()方法,添加代码:

# 检测火力持续时间
        if self.power >= 2 and pygame.time.get_ticks() - self.power_time > 5000:
            self.power -= 1
            self.power_time = pygame.time.get_ticks()

添加拾取道具声音
使用 ‘bfxr’ 找到喜欢的声音,加载后,当玩家和道具碰撞时播放。