import pygame
import random
Initialize Pygame
pygame.init()
Screen
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("KMF Race")
Clock
clock = pygame.time.Clock()
FPS = 60
Load images
car_img = pygame.image.load("car.png")
car_img = pygame.transform.scale(car_img, (50, 100))
enemy_car_img = pygame.image.load("enemy_car.png")
enemy_car_img = pygame.transform.scale(enemy_car_img, (50, 100))
road_img = pygame.image.load("road.png")
road_img = pygame.transform.scale(road_img, (WIDTH, HEIGHT))
obstacle_img = pygame.image.load("obstacle.png")
obstacle_img = pygame.transform.scale(obstacle_img, (50, 100))
boost_img = pygame.image.load("boost.png")
boost_img = pygame.transform.scale(boost_img, (40, 40))
Colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
Lanes (x positions)
lanes = [150, 375, 600]
Player
player_lane = 1
car_y = HEIGHT - 120
car_speed = 5
max_speed = 12
acceleration = 0.2
current_speed = car_speed
Enemy cars
enemies = []
Power-ups
powerups = []
Score
score = 0
high_score = 0
font = pygame.font.SysFont(None, 35)
game_over_font = pygame.font.SysFont(None, 75)
Functions
def draw_player():
screen.blit(car_img, (lanes[player_lane], car_y))
def draw_enemy(enemy):
screen.blit(enemy_car_img, (lanes[enemy[0]], enemy[1]))
def draw_powerup(powerup):
screen.blit(boost_img, (lanes[powerup[0]], powerup[1]))
def draw_score():
text = font.render(f"Score: {score} High Score: {high_score}", True, WHITE)
screen.blit(text, (10, 10))
def draw_game_over():
global high_score
high_score = max(high_score, score)
screen.fill(BLACK)
text = game_over_font.render("GAME OVER", True, WHITE)
score_text = font.render(f"Score: {score} High Score: {high_score}", True, WHITE)
screen.blit(text, (WIDTH//2 - text.get_width()//2, HEIGHT//2 - 50))
screen.blit(score_text, (WIDTH//2 - score_text.get_width()//2, HEIGHT//2 + 20))
pygame.display.update()
pygame.time.delay(3000)
Game Loop
running = True
while running:
screen.blit(road_img, (0, 0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Player input
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_lane > 0:
player_lane -= 1
if keys[pygame.K_RIGHT] and player_lane < 2:
player_lane += 1
if keys[pygame.K_UP] and current_speed < max_speed:
current_speed += acceleration
if keys[pygame.K_DOWN] and current_speed > 3:
current_speed -= acceleration
# Spawn enemies
if len(enemies) == 0 or enemies[-1][1] > 200:
lane_index = random.randint(0, 2)
enemies.append([lane_index, -120])
# Spawn power-ups
if random.random() < 0.01:
lane_index = random.randint(0, 2)
powerups.append([lane_index, -40])
# Move enemies
for enemy in enemies:
enemy[1] += current_speed
draw_enemy(enemy)
# Move power-ups
for powerup in powerups:
powerup[1] += current_speed
draw_powerup(powerup)
# Collision detection with enemies
for enemy in enemies:
if enemy[0] == player_lane and car_y < enemy[1] + 100 and car_y + 100 > enemy[1]:
draw_game_over()
score = 0
enemies.clear()
powerups.clear()
current_speed = car_speed
# Collision detection with power-ups
for powerup in powerups:
if powerup[0] == player_lane and car_y < powerup[1] + 40 and car_y + 100 > powerup[1]:
score += 50
current_speed = min(max_speed, current_speed + 2)
powerups.remove(powerup)
# Remove off-screen enemies/power-ups
enemies = [e for e in enemies if e[1] < HEIGHT]
powerups = [p for p in powerups if p[1] < HEIGHT]
# Increase score
score += 1
# Draw player and score
draw_player()
draw_score()
pygame.display.update()
clock.tick(FPS)
pygame.quit()
import pygame
import random
Initialize Pygame
pygame.init()
Screen
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("KMF Race")
Clock
clock = pygame.time.Clock()
FPS = 60
Load images
car_img = pygame.image.load("car.png")
car_img = pygame.transform.scale(car_img, (50, 100))
enemy_car_img = pygame.image.load("enemy_car.png")
enemy_car_img = pygame.transform.scale(enemy_car_img, (50, 100))
road_img = pygame.image.load("road.png")
road_img = pygame.transform.scale(road_img, (WIDTH, HEIGHT))
obstacle_img = pygame.image.load("obstacle.png")
obstacle_img = pygame.transform.scale(obstacle_img, (50, 100))
boost_img = pygame.image.load("boost.png")
boost_img = pygame.transform.scale(boost_img, (40, 40))
Colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
Lanes (x positions)
lanes = [150, 375, 600]
Player
player_lane = 1
car_y = HEIGHT - 120
car_speed = 5
max_speed = 12
acceleration = 0.2
current_speed = car_speed
Enemy cars
enemies = []
Power-ups
powerups = []
Score
score = 0
high_score = 0
font = pygame.font.SysFont(None, 35)
game_over_font = pygame.font.SysFont(None, 75)
Functions
def draw_player():
screen.blit(car_img, (lanes[player_lane], car_y))
def draw_enemy(enemy):
screen.blit(enemy_car_img, (lanes[enemy[0]], enemy[1]))
def draw_powerup(powerup):
screen.blit(boost_img, (lanes[powerup[0]], powerup[1]))
def draw_score():
text = font.render(f"Score: {score} High Score: {high_score}", True, WHITE)
screen.blit(text, (10, 10))
def draw_game_over():
global high_score
high_score = max(high_score, score)
screen.fill(BLACK)
text = game_over_font.render("GAME OVER", True, WHITE)
score_text = font.render(f"Score: {score} High Score: {high_score}", True, WHITE)
screen.blit(text, (WIDTH//2 - text.get_width()//2, HEIGHT//2 - 50))
screen.blit(score_text, (WIDTH//2 - score_text.get_width()//2, HEIGHT//2 + 20))
pygame.display.update()
pygame.time.delay(3000)
Game Loop
running = True
while running:
screen.blit(road_img, (0, 0))
pygame.quit()