如何从NPC反复发射子弹

时间:2013-12-18 07:59:57

标签: python windows pygame sprite

我用pygame sprites制作了NPC的图像。全国人大可以发射子弹。然而,每当我开始游戏时,NPC只会向玩家发射一颗子弹。我怎样反复制作NPC火子弹?是否有可能重新加载延迟?也许等几秒钟然后发射另一颗子弹。任何帮助表示赞赏。我正在运行Python 2.6,Pygame sprites,windows 7。

这是NPC的形象:

class Shooter(pygame.sprite.Sprite):
    def __init__(self, color, width, height):
        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.Surface([width, height])
        self.image.fill(white)

        self.rect = self.image.get_rect()

这是射击子弹的图像。

class ShooterBullet(pygame.sprite.Sprite):
    def __init__(self, color, player):
        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.Surface([10, 10])
        self.image.fill(white)

        self.player = player

        self.rect = self.image.get_rect()

    def update(self, player, shooter):
        ShooterBulletSpeed = 5
        self.player_x, self.player_y = player.rect.x, player.rect.y

        range = 200
        distance = [self.player_x - shooter.rect.x, self.player_y - shooter.rect.y]
        norm = math.sqrt(distance[0] ** 2 + distance[1] ** 2)
        direction = [distance[0] / norm, distance[1 ] / norm]
        bullet_vector = [direction[0] * ShooterBulletSpeed, direction[1] * ShooterBulletSpeed]


        self.rect.x += bullet_vector[0]
        self.rect.y += bullet_vector[1]

1 个答案:

答案 0 :(得分:-1)

你可以使用下面的代码延迟任何一秒钟,比如重装

time.sleep(1)

我可能在这里错了,但是我会粗略地猜测你可以将你的NPC的子弹放在for循环中并且玩它就像没有太多的python游戏真的希望这有帮助! / p>