added shooting

This commit is contained in:
Stephen Deaton 2024-07-16 13:58:02 -04:00
parent 4c9446c09d
commit cfd4c1bf86
2 changed files with 27 additions and 3 deletions

View File

@ -26,20 +26,43 @@ class Spaceship(pygame.sprite.Sprite):
self.rect.center = [x,y] self.rect.center = [x,y]
self.health_start = health self.health_start = health
self.health_remaining = health self.health_remaining = health
self.last_shot = pygame.time.get_ticks()
def update(self): def update(self):
speed = 8 speed = 8
cooldown = 500 # millisconds
key = pygame.key.get_pressed() key = pygame.key.get_pressed()
if key[pygame.K_a] and self.rect.left > 0: # Why zero not width tried width would not move if key[pygame.K_a] and self.rect.left > 0: # Why zero not width tried width would not move
self.rect.x -= speed # why speed not pixal + or - like others?? self.rect.x -= speed # why speed not pixal + or - like others??
if key[pygame.K_d] and self.rect.right < WIDTH: if key[pygame.K_d] and self.rect.right < WIDTH:
self.rect.x += speed self.rect.x += speed
time_now = pygame.time.get_ticks()
# shoot
if key[pygame.K_w] and time_now - self.last_shot > cooldown:
bullet = Bullets(self.rect.centerx, self.rect.top)
bullet_group.add(bullet)
self.last_shot = time_now
pygame.draw.rect(screen, RED, (self.rect.x, (self.rect.bottom +10), self.rect.width, 15)) pygame.draw.rect(screen, RED, (self.rect.x, (self.rect.bottom +10), self.rect.width, 15))
if self.health_remaining > 0: if self.health_remaining > 0:
pygame.draw.rect(screen, GREEN, (self.rect.x, (self.rect.bottom +10), int(self.rect.width * (self.health_remaining / self.health_start)), 15) ) pygame.draw.rect(screen, GREEN, (self.rect.x, (self.rect.bottom +10), int(self.rect.width * (self.health_remaining / self.health_start)), 15) )
class Bullets(pygame.sprite.Sprite):
def __init__(self,x ,y):
pygame.sprite.Sprite.__init__(self) # review init function
self.image = pygame.image.load("img/bullet.png")
self.rect = self.image.get_rect()
self.rect.center = [x, y]
def update(self):
self.rect.y -= 5
# create sprite groups # create sprite groups
spaceship_group = pygame.sprite.Group() spaceship_group = pygame.sprite.Group()
bullet_group = pygame.sprite.Group()
# create player # create player
spaceship = Spaceship(int(WIDTH / 2), HEIGHT - 100, 3) spaceship = Spaceship(int(WIDTH / 2), HEIGHT - 100, 3)
@ -63,8 +86,7 @@ clock = pygame.time.Clock()
running = True running = True
while running: while running:
clock.tick(FPS) clock.tick(FPS)
#draw background
draw_bg() draw_bg()
# event handlers # event handlers
@ -74,9 +96,11 @@ while running:
running = False running = False
spaceship.update() spaceship.update()
bullet_group.update()
# draw sprite groups on screen # draw sprite groups on screen
spaceship_group.draw(screen) spaceship_group.draw(screen)
bullet_group.draw(screen)
pygame.display.update() # Go over it again FLIP vs UPDATE Which to use When pygame.display.update() # Go over it again FLIP vs UPDATE Which to use When

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB