added shooting
This commit is contained in:
		
							parent
							
								
									4c9446c09d
								
							
						
					
					
						commit
						cfd4c1bf86
					
				| 
						 | 
					@ -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)
 | 
				
			||||||
| 
						 | 
					@ -64,7 +87,6 @@ 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								PyGame/practice/gameprac/img/bullet.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								PyGame/practice/gameprac/img/bullet.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.6 KiB  | 
		Loading…
	
		Reference in New Issue
	
	Block a user