Menu
CoddyTech

Часы

Урок 4 из 41 курса Создавайте игры с Pygame на Coddy.

Ваш цикл выполняется так быстро, как позволяет компьютер: тысячи кадров в секунду на быстром компьютере, меньше — на медленном. Игра должна работать с одинаковой скоростью везде.

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. Вызови 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

Потренируйтесь самостоятельно: Песочница Pygame