以下是一个使用 Python 和 Pygame 库实现的简单弹跳小球的示例代码:
import pygame
import sys
# 初始化 Pygame
pygame.init()
# 设置窗口尺寸
WIDTH, HEIGHT = 800, 600
WINDOW_SIZE = (WIDTH, HEIGHT)
WINDOW_TITLE = "弹跳小球"
FPS = 60
# 设置颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
# 设置小球属性
BALL_RADIUS = 20
BALL_COLOR = RED
BALL_SPEED_Y = 5
GRAVITY = 0.2
# 创建窗口
window = pygame.display.set_mode(WINDOW_SIZE)
pygame.display.set_caption(WINDOW_TITLE)
clock = pygame.time.Clock()
# 设置小球初始位置和速度
ball_x = WIDTH // 2
ball_y = HEIGHT // 2
ball_speed_x = 0
ball_speed_y = 0
# 游戏主循环
while True:
window.fill(BLACK) # 填充窗口为黑色
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 更新小球位置
ball_x += ball_speed_x
ball_y += ball_speed_y
# 检查小球是否触底
if ball_y + BALL_RADIUS >= HEIGHT:
ball_y = HEIGHT - BALL_RADIUS
ball_speed_y *= -1
# 更新小球速度(模拟重力)
ball_speed_y += GRAVITY
# 绘制小球
pygame.draw.circle(window, BALL_COLOR, (int(ball_x), int(ball_y)), BALL_RADIUS)
pygame.display.update()
clock.tick(FPS)
这段代码使用 Pygame 库创建了一个窗口,并在窗口中绘制了一个红色的小球。
小球会在窗口内上下弹跳,模拟了简单的重力运动。
你可以通过修改代码中的参数来调整窗口大小、小球属性和行为等。
当你运行这段代码时,会打开一个窗口,窗口的大小为800x600像素,背景为黑色。在窗口的中央绘制了一个红色的小球,初始位置位于窗口的正中央。
运行效果
接下来,让我们一行一行地解释代码:
- 导入必要的模块:
import pygame
import sys
- 初始化 Pygame:
pygame.init()
- 设置窗口尺寸、标题和帧率:
WIDTH, HEIGHT = 800, 600
WINDOW_SIZE = (WIDTH, HEIGHT)
WINDOW_TITLE = "弹跳小球"
FPS = 60
- 定义颜色:
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
- 设置小球属性:
BALL_RADIUS = 20
BALL_COLOR = RED
BALL_SPEED_Y = 5
GRAVITY = 0.2
- 创建窗口:
window = pygame.display.set_mode(WINDOW_SIZE)
pygame.display.set_caption(WINDOW_TITLE)
clock = pygame.time.Clock()
- 初始化小球的位置和速度:
ball_x = WIDTH // 2
ball_y = HEIGHT // 2
ball_speed_x = 0
ball_speed_y = 0
- 进入游戏主循环:
while True:
- 处理事件,例如关闭窗口事件:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
- 更新小球的位置:
ball_x += ball_speed_x
ball_y += ball_speed_y
- 检查小球是否触底,如果触底则让小球反弹:
if ball_y + BALL_RADIUS >= HEIGHT:
ball_y = HEIGHT - BALL_RADIUS
ball_speed_y *= -1
- 更新小球的速度,模拟重力:
ball_speed_y += GRAVITY
- 绘制小球:
pygame.draw.circle(window, BALL_COLOR, (int(ball_x), int(ball_y)), BALL_RADIUS)
- 更新屏幕显示:
pygame.display.update()
- 控制帧率:
clock.tick(FPS)
这样,小球就会在窗口中上下弹跳,模拟了简单的重力运动。
你可以通过修改代码中的参数来调整窗口大小、小球属性和行为等。
了解更多python项目开发,请关注我:Python提升课堂