Run game

 

import pygame import random import sys # Initialize Pygame pygame.init() # Game window settings WIDTH = 800 HEIGHT = 400 FPS = 60 GRAVITY = 0.8 JUMP_POWER = -15 # Colors WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) # Create window screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Running Game") clock = pygame.time.Clock() # Load images player_img = pygame.Surface((30, 50)) player_img.fill((0, 128, 255)) obstacle_img = pygame.Surface((40, 40)) obstacle_img.fill(RED) class Player(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = player_img self.rect = self.image.get_rect() self.rect.center = (100, HEIGHT - 50) self.vel_y = 0 self.jumping = False def update(self): self.vel_y += GRAVITY self.rect.y += self.vel_y # Ground collision if self.rect.bottom >= HEIGHT - 50: self.rect.bottom = HEIGHT - 50 self.jumping = False def jump(self): if not self.jumping: self.vel_y = JUMP_POWER self.jumping = True class Obstacle(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = obstacle_img self.rect = self.image.get_rect() self.rect.center = (WIDTH + 50, HEIGHT - 70) self.speed = 7 def update(self): self.rect.x -= self.speed if self.rect.right < 0: self.kill() # Create sprite groups all_sprites = pygame.sprite.Group() obstacles = pygame.sprite.Group() player = Player() all_sprites.add(player) # Game variables score = 0 spawn_timer = 0 running = True # Font for score display font = pygame.font.Font(None, 36) # Game loop while running: clock.tick(FPS) # 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: player.jump() # Spawn obstacles spawn_timer += 1 if spawn_timer > 90: obstacle = Obstacle() all_sprites.add(obstacle) obstacles.add(obstacle) spawn_timer = 0 score += 1 # Update all_sprites.update() # Collision detection if pygame.sprite.spritecollide(player, obstacles, False): running = False # Drawing screen.fill(WHITE) pygame.draw.line(screen, BLACK, (0, HEIGHT - 50), (WIDTH, HEIGHT - 50), 2) # Draw score score_text = font.render(f"Score: {score}", True, BLACK) screen.blit(score_text, (10, 10)) all_sprites.draw(screen) pygame.display.flip() # Game over screen.fill(WHITE) game_over_text = font.render(f"Game Over! Final Score: {score}", True, RED) screen.blit(game_over_text, (WIDTH//2 - 150, HEIGHT//2)) pygame.display.flip() pygame.time.wait(3000) pygame.quit() sys.exit()

Comments