Untitled
unknown
plain_text
3 months ago
2.0 kB
4
Indexable
import pygame import random # Initialize pygame pygame.init() # Game constants WIDTH, HEIGHT = 800, 600 WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) PLAYER_SPEED = 5 BULLET_SPEED = 7 ENEMY_SPEED = 2 # Create screen screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("2D Shooter") # Load player player = pygame.Rect(WIDTH // 2 - 25, HEIGHT - 60, 50, 50) bullets = [] enemies = [] # Game loop running = True clock = pygame.time.Clock() while running: screen.fill(BLACK) # Event handling for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: bullets.append(pygame.Rect(player.x + 20, player.y, 10, 20)) # Player movement keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and player.x > 0: player.x -= PLAYER_SPEED if keys[pygame.K_RIGHT] and player.x < WIDTH - player.width: player.x += PLAYER_SPEED # Update bullets for bullet in bullets[:]: bullet.y -= BULLET_SPEED if bullet.y < 0: bullets.remove(bullet) # Spawn enemies if random.randint(1, 40) == 1: enemies.append(pygame.Rect(random.randint(0, WIDTH-40), 0, 40, 40)) # Move enemies for enemy in enemies[:]: enemy.y += ENEMY_SPEED if enemy.y > HEIGHT: enemies.remove(enemy) # Collision detection for bullet in bullets[:]: for enemy in enemies[:]: if bullet.colliderect(enemy): bullets.remove(bullet) enemies.remove(enemy) break # Draw player, bullets, and enemies pygame.draw.rect(screen, WHITE, player) for bullet in bullets: pygame.draw.rect(screen, RED, bullet) for enemy in enemies: pygame.draw.rect(screen, RED, enemy) pygame.display.flip() clock.tick(60) pygame.quit()
Editor is loading...
Leave a Comment