Untitled

 avatar
unknown
plain_text
2 months ago
2.9 kB
3
Indexable
pip install import pygame
import random
import os

# Initialize pygame
pygame.init()

# Screen dimensions
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# Colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)

# Create the screen
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Car Game")

# Clock for controlling frame rate
clock = pygame.time.Clock()

# Load images
car_image = pygame.image.load(os.path.join("assets", "car.png"))  # Replace with your car image
obstacle_image = pygame.image.load(os.path.join("assets", "obstacle.png"))  # Replace with your obstacle image

# Resize images
car_image = pygame.transform.scale(car_image, (50, 100))
obstacle_image = pygame.transform.scale(obstacle_image, (50, 50))

# Car class
class Car:
    def __init__(self):
        self.image = car_image
        self.rect = self.image.get_rect()
        self.rect.center = (SCREEN_WIDTH // 2, SCREEN_HEIGHT - 100)

    def move(self, direction):
        if direction == "left" and self.rect.left > 0:
            self.rect.x -= 10
        if direction == "right" and self.rect.right < SCREEN_WIDTH:
            self.rect.x += 10

    def draw(self):
        screen.blit(self.image, self.rect)

# Obstacle class
class Obstacle:
    def __init__(self):
        self.image = obstacle_image
        self.rect = self.image.get_rect()
        self.rect.x = random.randint(0, SCREEN_WIDTH - self.rect.width)
        self.rect.y = -self.rect.height
        self.speed = random.randint(5, 10)

    def update(self):
        self.rect.y += self.speed
        if self.rect.top > SCREEN_HEIGHT:
            self.rect.x = random.randint(0, SCREEN_WIDTH - self.rect.width)
            self.rect.y = -self.rect.height
            self.speed = random.randint(5, 10)

    def draw(self):
        screen.blit(self.image, self.rect)

# Game variables
car = Car()
obstacles = [Obstacle() for _ in range(5)]
score = 0
font = pygame.font.Font(None, 36)

# Game loop
running = True
while running:
    # Handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Move car
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        car.move("left")
    if keys[pygame.K_RIGHT]:
        car.move("right")

    # Update obstacles
    for obstacle in obstacles:
        obstacle.update()
        if car.rect.colliderect(obstacle.rect):
            running = False  # End game on collision
        if obstacle.rect.top > SCREEN_HEIGHT:
            score += 1

    # Draw everything
    screen.fill(WHITE)
    car.draw()
    for obstacle in obstacles:
        obstacle.draw()

    # Display score
    score_text = font.render(f"Score: {score}", True, BLACK)
    screen.blit(score_text, (10, 10))

    # Update display
    pygame.display.flip()

    # Cap frame rate
    clock.tick(30)

# Quit pygame
pygame.quit()
Editor is loading...
Leave a Comment