import pygame
import sys

# 初始化 pygame
pygame.init()

# 窗口设置
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("简易驾驶小游戏")

# 颜色定义
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GRAY = (128, 128, 128)

# 小车属性
car_width = 50
car_height = 80
car_x = WIDTH // 2 - car_width // 2  # 初始水平居中
car_y = HEIGHT - car_height - 20     # 初始靠下
car_speed = 8

# 游戏时钟（控制帧率）
clock = pygame.time.Clock()
FPS = 60

# 游戏主循环
running = True
while running:
    # 帧率控制
    clock.tick(FPS)

    # 事件处理（关闭窗口）
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 键盘控制小车移动
    keys = pygame.key.get_pressed()
    # 上下左右移动，并且不让小车跑出窗口
    if keys[pygame.K_UP] and car_y > 0:
        car_y -= car_speed
    if keys[pygame.K_DOWN] and car_y < HEIGHT - car_height:
        car_y += car_speed
    if keys[pygame.K_LEFT] and car_x > 0:
        car_x -= car_speed
    if keys[pygame.K_RIGHT] and car_x < WIDTH - car_width:
        car_x += car_speed

    # 绘制画面
    screen.fill(BLACK)          # 黑色背景

    # 画白色道路（中间车道）
    pygame.draw.rect(screen, GRAY, (WIDTH//2 - 150, 0, 300, HEIGHT))
    pygame.draw.line(screen, WHITE, (WIDTH//2, 0), (WIDTH//2, HEIGHT), 5)

    # 画小车（红色矩形 + 黑色轮子）
    pygame.draw.rect(screen, RED, (car_x, car_y, car_width, car_height))
    # 轮子
    wheel_r = 8
    pygame.draw.circle(screen, BLACK, (car_x + 10, car_y + 15), wheel_r)
    pygame.draw.circle(screen, BLACK, (car_x + car_width - 10, car_y + 15), wheel_r)
    pygame.draw.circle(screen, BLACK, (car_x + 10, car_y + car_height - 15), wheel_r)
    pygame.draw.circle(screen, BLACK, (car_x + car_width - 10, car_y + car_height - 15), wheel_r)

    # 更新屏幕显示
    pygame.display.flip()

# 退出游戏
pygame.quit()
sys.exit()