import pygame import random import sys # Initialize Pygame pygame.init() # Constants WIDTH, HEIGHT = 800, 600 FPS = 60 PLAYER_SPEED = 10 BULLET_SPEED = 50 ENEMY_SPEED = 0.1 # Colors WHITE = (255, 255, 255) GREEN = (0, 255, 0) RED = (255, 0, 0) BLUE = (0, 0, 255) # Screen setup screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Space Invaders") clock = pygame.time.Clock() # Player setup player = pygame.Rect(WIDTH // 2 - 25, HEIGHT - 60, 50, 30) bullets = [] # Enemy setup enemies = [] for i in range(5): for j in range(10): enemy = pygame.Rect(80 * j + 20, 50 * i + 20, 40, 30) enemies.append(enemy) # Font setup font = pygame.font.SysFont(None, 36) score = 0 # Game loop running = True while running: clock.tick(FPS) screen.fill((0, 0, 0)) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: bullet = pygame.Rect(player.centerx - 2, player.top, 5, 10) bullets.append(bullet) # Player movement keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and player.left > 0: player.x -= PLAYER_SPEED if keys[pygame.K_RIGHT] and player.right < WIDTH: player.x += PLAYER_SPEED # Move bullets for bullet in bullets[:]: bullet.y -= BULLET_SPEED if bullet.bottom < 0: bullets.remove(bullet) # Move enemies for enemy in enemies: enemy.y += ENEMY_SPEED if enemy.bottom > HEIGHT: running = False # Bullet-enemy collisions for bullet in bullets[:]: for enemy in enemies[:]: if bullet.colliderect(enemy): bullets.remove(bullet) enemies.remove(enemy) score += 10 break # Draw player pygame.draw.rect(screen, BLUE, player) # Draw bullets for bullet in bullets: pygame.draw.rect(screen, GREEN, bullet) # Draw enemies for enemy in enemies: pygame.draw.rect(screen, RED, enemy) # Draw score score_text = font.render(f"Score: {score}", True, WHITE) screen.blit(score_text, (10, 10)) pygame.display.flip() pygame.quit() sys.exit()