import pygame import random import sys pygame.init() # Screen WIDTH, HEIGHT = 600, 800 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("🔥 Dodge the Fireballs!") # Clock clock = pygame.time.Clock() # Colors WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (200, 0, 0) BLUE = (0, 100, 255) # Fonts font = pygame.font.SysFont(None, 40) # Player player_width = 50 player_height = 50 player_x = WIDTH // 2 player_y = HEIGHT - player_height - 20 player_speed = 7 player_rect = pygame.Rect(player_x, player_y, player_width, player_height) # Animation player_color_cycle = [BLUE, (0, 150, 255), (0, 200, 255)] frame_count = 0 # Enemies enemy_list = [] enemy_width = 40 enemy_height = 40 enemy_speed = 5 spawn_timer = 0 # Score score = 0 game_over = False def draw_player(): global frame_count color = player_color_cycle[(frame_count // 10) % len(player_color_cycle)] pygame.draw.rect(screen, color, player_rect) def draw_enemies(): for enemy in enemy_list: pygame.draw.ellipse(screen, RED, enemy) def reset_game(): global enemy_list, player_rect, score, game_over player_rect.x = WIDTH // 2 enemy_list = [] score = 0 game_over = False # Game loop running = True while running: screen.fill(WHITE) frame_count += 1 if not game_over: # Input keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and player_rect.left > 0: player_rect.x -= player_speed if keys[pygame.K_RIGHT] and player_rect.right < WIDTH: player_rect.x += player_speed # Spawn enemies spawn_timer += 1 if spawn_timer > 30: x_pos = random.randint(0, WIDTH - enemy_width) enemy = pygame.Rect(x_pos, 0, enemy_width, enemy_height) enemy_list.append(enemy) spawn_timer = 0 # Move enemies for enemy in enemy_list: enemy.y += enemy_speed # Check collisions for enemy in enemy_list: if player_rect.colliderect(enemy): game_over = True # Remove off-screen enemies and increase score enemy_list = [e for e in enemy_list if e.y < HEIGHT] score += 1 # Draw draw_player() draw_enemies() # Score display score_text = font.render(f"Score: {score}", True, BLACK) screen.blit(score_text, (20, 20)) else: over_text = font.render("Game Over! Press R to Restart", True, BLACK) score_text = font.render(f"Final Score: {score}", True, BLACK) screen.blit(over_text, (WIDTH//2 - over_text.get_width()//2, HEIGHT//2 - 30)) screen.blit(score_text, (WIDTH//2 - score_text.get_width()//2, HEIGHT//2 + 20)) keys = pygame.key.get_pressed() if keys[pygame.K_r]: reset_game() # Events for event in pygame.event.get(): if event.type == pygame.QUIT: running = False pygame.display.flip() clock.tick(60) pygame.quit() sys.exit()