Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Вы когда-нибудь хотели создать захватывающую игру, используя библиотеку Python PyGame, но чувствовали себя перегруженными концепцией управления временем? Если да, то вы не одиноки.

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

Создание простой игры

Начните с создания простой игры, в которой прямоугольник движется вправо. Начать, установить пип на свое устройство и используйте команду ниже, чтобы установить модуль PyGame:

pip установить pygame

Вы можете найти все примеры кода в этом репозиторий GitHub.

После установки импортируйте модуль PyGame. Затем создайте экран размером 800x600 с белым цветом фона и добавьте прямоугольный объект. Код должен выглядеть примерно так:

Импортировать пигейм
pygame.init()
экран = pygame.display.set_mode((800, 600))
фон = pygame. Поверхность (screen.get_size())
фон.заполнить((255, 255, 255))
прямоугольник = pygame. Прямой(0, 0, 20, 20)

После этого используйте цикл while, чтобы игра продолжалась, и продолжайте движение прямоугольного объекта до тех пор, пока он не достигнет конца экрана.

работает = Истинный

пока бег:
для событие в pygame.event.get():
если event.type == pygame. ПОКИДАТЬ:
работает = ЛОЖЬ

прямоугольник.х += 1

если прямоугольник.х > 780:
прямоугольник.х = 0

screen.blit (фон, (0, 0))
pygame.draw.rect (экран, (0, 0, 0), прямо)
pygame.display.update()

Вы также можете добавить пользовательский ввод и коллизии в игре. Ниже приведен вывод:

Обзор модуля времени PyGame

Чтобы контролировать время в этой игре, вы можете использовать pygame.time модуль. Этот модуль предоставляет различные полезные функции, включая Часы объект с такими методами, как get_ticks(), ждать(), и задерживать(). Используя эти функции, вы можете легко контролировать время в своей игре.

Создание объекта часов для отслеживания времени

В PyGame вы можете использовать объект Clock для отслеживания времени. Чтобы создать часы, просто используйте следующую строку кода:

часы = pygame.time. Часы()

С помощью этого объекта «Часы» теперь вы можете отслеживать время в своей игре. Есть также несколько других полезных функций, связанных с объектом Clock, например:

  • получить_время(): С помощью этой функции вы можете получить время, затраченное на каждый кадр игры. Чтобы использовать эту функцию, просто добавьте следующую строку кода после цикла while:
    время = часы.get_time()
    Добавьте текстовый объект для отображения затраченного времени:
    шрифт = pygame.font. SysFont(«Ариал», 18)
    текст = шрифт.рендер('Затраченное время: {} мс'.формат (время), Истинный, (0, 0, 0))
    screen.blit(текст,(0, 0))
  • галочка(): Используйте эту функцию, чтобы установить частоту кадров в игре. По умолчанию частота кадров установлена ​​на 60 FPS. Чтобы установить его на 30 кадров в секунду, просто добавьте следующую строку кода:
    часы.тик(30)
  • получить_fps(): Вы можете получить текущую частоту кадров в игре, используя get_fps. Чтобы использовать эту функцию, просто добавьте следующую строку кода:
    кадр/с = часы.get_fps()
    Вы можете добавить текстовый объект для отображения частоты кадров:
    шрифт = pygame.font. SysFont(«Ариал», 18)
    текст = шрифт.рендер('Кадры в секунду: {}'.формат (кадров в секунду), Истинный, (0, 0, 0))
    screen.blit(текст,(0, 20))
  • tick_busy_loop(): Эта функция позволяет вычислить, сколько миллисекунд прошло с момента последнего вызова функции галочка() функция. Чтобы использовать его, просто добавьте следующую строку кода:
    часы.tick_busy_loop(30)

Получение времени с помощью get_ticks

get_ticks() Функция возвращает время в миллисекундах с момента инициализации PyGame. Чтобы использовать эту функцию, добавьте следующую строку кода:

time_elapsed = pygame.time.get_ticks()

Добавьте текстовый объект для отображения затраченного времени:

шрифт = pygame.font. SysFont(«Ариал», 18)
текст = шрифт.рендер(«Прошло время: {} мс».формат (прошедшее время), Истинный, (0, 0, 0))
screen.blit(текст,(0, 40))

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

если время истекло; истекшее время / 5000 > 0:
прямоугольник.х += 5

Ниже приведен вывод:

Приостановка игры с помощью функций ожидания и задержки

PyGame также предоставляет две функции, которые можно использовать для приостановки игры на определенное время: ждать функции и задерживать функция.

Чтобы использовать ждать функции, просто добавьте следующую строку кода в цикл while:

pygame.time.wait(1000)

Это приостановит игру на 1000 миллисекунд (1 секунду). Чтобы использовать задерживать функции, просто добавьте следующую строку кода в цикл while:

pygame.time.delay (1000)

Это задержит следующий кадр игры на 1000 миллисекунд (1 секунду).

Различия между ожиданием и задержкой

Есть несколько различий между ждать и задерживать функции. ждать функция приостанавливает процесс, чтобы разделить процессор с другими программами. задерживать функция будет использовать процессор, чтобы сделать задержку более точной. Это означает, что задерживать функция требует большей мощности процессора, чем ждать функция и подходит для игр, которые требуют точного времени.

Создание события с помощью set_timer

Вы можете использовать set_timer() Функция для создания события, которое срабатывает через указанное время.

События в PyGame — это объекты, которые содержат информацию о пользовательском вводе или сообщениях, сгенерированных программой. Чтобы использовать эту функцию, создайте пользовательское событие и добавьте следующую строку кода:

pygame.time.set_timer (CUSTOM_EVENT, 1000)

Это создаст событие, которое запускается через 1000 миллисекунд — 1 секунду. Существуют различные типы событий, которые вы можете инициировать, например движение мыши, ввод с клавиатуры и события окна. Затем ваш код может реагировать на эти события любым наиболее подходящим образом.

Например, если вы хотите изменить ось Y прямоугольного объекта через 1 секунду или при срабатывании пользовательского события, вы можете добавить следующую строку кода:

если event.type == CUSTOM_EVENT:
прямоугольный += 20

Таким образом, вы можете легко создавать временные события в своей игре, которые вы можете использовать для создания интересного и сложного игрового процесса.

Со временем улучшайте управление игрой

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

Используя функции контроля времени в PyGame, вы можете легко реализовать эти и другие функции в своих собственных играх.