Pygame, как установить определенную задержку при автоматической стрельбе - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь создать игру в космическую стрельбу, проблема в том, что мне нужно установить определенную задержку в игровом цикле, чтобы можно было управлять стрельбой.Если возможно, если задержка может быть сохранена в переменной, чтобы я мог контролировать ее во время игры, спасибо.Вот код

Когда вы используете пробел для съемки, у него уже есть задержка, но я предполагаю, что это просто из-за задержки клавиатуры, потому что она обнаруживается при нажатии

class Player(pygame.sprite.Sprite):
    ........
    def shoot(self):
        bullet = Bullet(self.rect.centerx, self.rect.top)
        all_sprites.add(bullet)
        bullets.add(bullet)

class Bullet(pygame.sprite.Sprite):
      def __init__(self, x, y):
          pygame.sprite.Sprite.__init__(self)
          self.image = pygame.Surface((10, 20))
          self.image.fill(RED)
          self.rect = self.image.get_rect()
          self.rect.bottom = y
          self.rect.centerx = x
          self.speedy = -10

      def update(self):
         self.rect.y += self.speedy
         # kill if it moves off the top of the screen
         if self.rect.bottom < 0:
             self.kill()

#Sprites
all_sprites = pygame.sprite.Group()
bullets = pygame.sprite.Group()
player = Player()
all_sprites.add(player)

running = True
while running:
    player.shoot()

1 Ответ

0 голосов
/ 05 января 2019

создайте переменную, например, shootTime и повторяйте ее (добавляйте один) в каждом цикле, затем вызывайте функцию всхода только тогда, когда переменная достигает двадцати.как только вы вызываете переменную съемки, затем установите переменную обратно в ноль

all_sprites = pygame.sprite.Group()
bullets = pygame.sprite.Group()
player = Player()
all_sprites.add(player)
shootTime = 0

running = True
while running:
    shootTime += 1
    if shootTime == 20:
        player.shoot()
        shootTime = 0

, вы можете изменить число 20 в if shootTime == 20, чтобы изменить длину между кадрами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...