I am trying to make a spaceship game, however, when I added the part which allows you to fire bullets, the game crashed immediately crashed when I run the game.
Here is my current code (Some parts omitted or replaced by --snip--)
class Spaceship(pygame.sprite.Sprite):
def __init__(self, s, x, y):
pygame.sprite.Sprite.__init__(self)
self.screen = s
self.x, self.y = x, y
self.image = pygame.image.load("C:/eqodqfe/spaceship.png")
self.image = pygame.transform.scale(self.image, (175, 175))
self.rect = self.image.get_rect()
self.rect.center = (self.x, self.y)
def update(self):
self.rect.center = (self.x, self.y)
class Bullet(pygame.sprite.Sprite):
def __init__(self, s, x, y):
pygame.sprite.Sprite.__init__(self)
self.screen = s
self.x, self.y = x, y
self.image = pygame.image.load("C:/eqodqfe/bullet.png")
self.image = pygame.transform.scale(self.image, (100, 100))
self.rect = self.image.get_rect()
self.rect.center = (self.x, self.y)
def update(self):
self.rect.center = (self.x, self.y)
def fire(self):
while self.y <= 490:
self.y -= 5
spaceship = Spaceship(screen, 400, 400)
bullet = Bullet(screen, 0, 0)
running = True
while running:
--snip--
key = pygame.key.get_pressed()
if key[pygame.K_a]:
spaceship.x -= 0.5
elif key[pygame.K_d]:
spaceship.x += 0.5
--snip--
spaceship.update()
bullet.update()
screen.fill((255, 255, 255))
screen.blit(spaceship.image, spaceship.rect)
screen.blit(bullet.image, bullet.rect)
bullet.x = spaceship.x
bullet.y = spaceship.y-20
if pygame.mouse.get_pressed():
bullet.fire()
pygame.display.update()
Does anybody know what went wrong?