编辑代码

import pygame
import sys

# 初始化 Pygame
pygame.init()

# 设置窗口大小
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("跳动的小球 - Pygame 示例")

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

# 小球的属性
ball_radius = 30
ball_x = WIDTH // 2  # 小球初始 x 坐标(窗口水平居中)
ball_y = ball_radius  # 小球初始 y 坐标(窗口顶部)
ball_speed_y = 5  # 小球在 y 方向的速度(下落速度)
gravity = 0.5     # 模拟重力(让下落加速)
bounce_damping = 0.8  # 反弹时的能量损失(阻尼)

# 主循环
clock = pygame.time.Clock()
running = True

while running:
    # 1. 控制帧率(每秒 60 帧)
    clock.tick(60)

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

    # 3. 更新小球的位置(物理逻辑)
    ball_speed_y += gravity  # 重力加速度
    ball_y += ball_speed_y   # 更新 y 坐标

    # 4. 碰撞检测:碰到窗口底部时反弹
    if ball_y + ball_radius > HEIGHT:
        # 反弹:速度反向,并乘以阻尼(模拟能量损失)
        ball_speed_y = -ball_speed_y * bounce_damping
        # 确保小球不会超出窗口底部
        ball_y = HEIGHT - ball_radius

    # 5. 填充背景(黑色或其他颜色)
    screen.fill(WHITE)

    # 6. 绘制小球
    pygame.draw.circle(screen, RED, (int(ball_x), int(ball_y)), ball_radius)

    # 7. 更新画面
    pygame.display.flip()

# 退出 Pygame
pygame.quit()
sys.exit()