import pygame
import sys

# 初始化pygame
pygame.init()

# 窗口设置
WIDTH, HEIGHT = 480, 700
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("2D赛车小游戏")

# 颜色定义
WHITE = (255, 255, 255)
GREY = (80, 80, 80)
GREEN = (34, 139, 34)
YELLOW = (255, 255, 0)
RED = (200, 0, 0)

# 时钟
clock = pygame.time.Clock()
FPS = 60

# 小车参数
car_width = 40
car_height = 80
car_x = WIDTH // 2 - car_width // 2
car_y = HEIGHT - car_height - 20
car_speed = 6

# 道路参数
road_left = 80
road_right = WIDTH - 80
road_scroll_y = 0
road_speed = 4

# 分数
score = 0
font = pygame.font.SysFont("simhei", 32)

# 主循环
running = True
while running:
    # 控制滚动速度随分数略微加快
    road_speed = 4 + score / 1000

    # 事件监听
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 按键控制
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and car_x > road_left:
        car_x -= car_speed
    if keys[pygame.K_RIGHT] and car_x + car_width < road_right:
        car_x += car_speed
    if keys[pygame.K_UP] and car_y > 0:
        car_y -= car_speed
    if keys[pygame.K_DOWN] and car_y + car_height < HEIGHT:
        car_y += car_speed

    # 背景绘制：草地
    screen.fill(GREEN)
    # 绘制道路
    pygame.draw.rect(screen, GREY, (road_left, 0, road_right - road_left, HEIGHT))

    # ========== 修复这里：转成int ==========
    line_height = 40
    scroll_int = int(road_scroll_y)
    start_y = scroll_int % line_height - line_height
    for y in range(start_y, HEIGHT, line_height * 2):
        pygame.draw.rect(screen, YELLOW, (WIDTH//2 - 4, y, 8, 25))

    road_scroll_y += road_speed
    score += road_speed

    # 绘制小车（红色矩形代替车辆）
    pygame.draw.rect(screen, RED, (car_x, car_y, car_width, car_height))

    # 绘制分数文字
    score_text = font.render(f"距离: {int(score)} m", True, WHITE)
    screen.blit(score_text, (10, 10))

    # 更新画面
    pygame.display.flip()
    clock.tick(FPS)

pygame.quit()
sys.exit()
