Untitled
unknown
plain_text
4 months ago
2.2 kB
1
Indexable
import pygame import random import time # Initialize pygame pygame.init() # Define constants WIDTH, HEIGHT = 800, 600 FPS = 60 PLAYER_WIDTH, PLAYER_HEIGHT = 50, 50 OBSTACLE_WIDTH, OBSTACLE_HEIGHT = 50, 50 SPEED = 5 GRAVITY = 0.5 # Colors WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) # Game screen setup screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Subway Surfers Clone") # Clock for controlling frame rate clock = pygame.time.Clock() # Load assets player_image = pygame.Surface((PLAYER_WIDTH, PLAYER_HEIGHT)) player_image.fill(GREEN) obstacle_image = pygame.Surface((OBSTACLE_WIDTH, OBSTACLE_HEIGHT)) obstacle_image.fill(RED) # Player class class Player(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = player_image self.rect = self.image.get_rect() self.rect.center = (WIDTH // 2, HEIGHT - 100) self.speed_x = 0 self.speed_y = 0 def update(self): # Update player position self.rect.x += self.speed_x self.rect.y += self.speed_y # Apply gravity if self.rect.y < HEIGHT - PLAYER_HEIGHT: self.speed_y += GRAVITY else: self.rect.y = HEIGHT - PLAYER_HEIGHT self.speed_y = 0 # Stay within screen bounds if self.rect.x < 0: self.rect.x = 0 if self.rect.x > WIDTH - PLAYER_WIDTH: self.rect.x = WIDTH - PLAYER_WIDTH def jump(self): if self.rect.y == HEIGHT - PLAYER_HEIGHT: self.speed_y = -15 # Obstacle class class Obstacle(pygame.sprite.Sprite): def __init__(self, x, y): super().__init__() self.image = obstacle_image self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y def update(self): self.rect.x -= SPEED if self.rect.x < 0: self.kill() # Game loop def game_loop(): # Create player and sprite groups player = Player() all_sprites = pygame.sprite.Group() all_sprites.add(player) obstacles = pygame.sprite.Group() # Game variables score = 0 last_obstacle_ti
Editor is loading...
Leave a Comment