Попытка сделать врага в pygame, который стреляет пулями по прямой в pygame. Мне удалось заставить врага стрелять, но он стреляет постоянным пучком пуль, а не разносит их. Есть ли способ развести пули?
Это класс врага
class Boss(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((100, 70))
self.image.fill(white)
self.rect = self.image.get_rect()
self.rect.centerx = WIDTH / 2
self.rect.y = (WIDTH / 2) - 500
self.speedy = 3
def update(self):
self.rect.y += self.speedy
if self.rect.y >= 30:
self.rect.y = 30
def shoot(self):
bossbullet = Bossbullet(self.rect.centerx, self.rect.bottom)
all_sprites.add(bossbullet)
bossbullets.add(bossbullet)
class Bossbullet(pygame.sprite.Sprite):
def __init__(self, x, y):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((10, 20))
self.image.fill(white)
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
if self.rect.bottom < 0:
self.kill()
all_sprites = pygame.sprite.Group()
boss = Boss()
all_sprites.add(boss)
bossbullets = pygame.sprite.Group()
это цикл, в котором идет игра и враг стреляет
running = True
while running:
clock.tick(FPS)
if boss.rect.y >= 30:
boss.shoot()