时钟
本课属于 Coddy Pygame 学习旅程的“游戏循环”单元。第 4 课,共 35 课。
你的循环会以计算机能达到的最快速度运行:在性能好的机器上每秒运行数千帧,在性能较差的机器上则更少。游戏无论在哪里运行,都需要保持相同的速度。
pygame.time.Clock 可以控制运行节奏。在循环开始前创建一个时钟,然后在每次循环结束时调用一次 clock.tick(60)。它会根据需要等待,让循环每秒最多运行 60 次。
clock = pygame.time.Clock()
running = True
while running:
# 处理事件、绘制画面、更新显示
clock.tick(60)每秒 60 帧是实现流畅移动的常见帧率。从现在起,每帧移动 4 像素的物体,每秒会移动 240 像素。
挑战
简单让游戏以每秒 60 帧的速度运行。
- 在
set_caption这一行下面创建一个时钟:clock = pygame.time.Clock()。 - 在循环的最后一行,也就是 flip 之后,调用
clock.tick(60)。
按“开始”:正方形看起来和之前一样,现在每秒绘制 60 次。然后按“检查”。
亲手试试
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (220, 160, 40, 40))
pygame.display.flip()
pygame.quit()
游戏循环中的所有课
自己练习: Pygame 在线编辑器