2013-12-18 60 views
0

我用pygame精靈製作了NPC的圖像。 NPC可以發射子彈。然而,每當我開始遊戲時,NPC只會向玩家發射一顆子彈。我如何反複製作NPC發射的子彈?是否有可能重新加載延遲?也許等待幾秒鐘再發射另一顆子彈。任何幫助表示讚賞。我運行的Python 2.6,pygame的精靈,Windows 7的如何反覆從NPC發射子彈

這是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

您可以使用下面的代碼,以延遲任何一秒鐘像重裝

time.sleep(1) 

我可能是錯在這裏,但我會做一個粗略的估計說,你可以把你的NPC的子彈一個for循環播放它,就像沒有太多與Python遊戲excperince真的希望這有助於!

+0

'time.sleep()'會暫停執行,這對於大多數應用程序來說是很糟糕的做法。 OP應該考慮使用'pygame.time.Clock'。 –