Menu
CoddyTech

时钟

本课属于 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 像素。

challenge icon

挑战

简单

让游戏以每秒 60 帧的速度运行。

  1. 在 set_caption 这一行下面创建一个时钟:clock = pygame.time.Clock()。
  2. 在循环的最后一行,也就是 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 在线编辑器