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