В этом руководстве вы узнаете, как отображать и обновлять результаты игр в Pygame, популярной библиотеке Python для разработки игр. К концу вы сможете создать простую игру с прыжками и отображать счет игрока на экране по мере его продвижения. Игра отслеживает ввод с клавиатуры, поэтому вы можете перемещать игрока влево и вправо с помощью клавиш со стрелками.
Создание простой игры
Прежде чем вы сможете отображать и обновлять результаты в Pygame, вам сначала нужно создать игру, с которой вы будете работать. В этом уроке вы создадите простую игру, в которой игрок может двигаться влево или вправо. Но перед этим вы должны pip установлен на вашем устройстве. После установки pip выполните следующую команду, чтобы установить модуль pygame:
точка установить пигейм
Для начала импортируйте необходимые модули и настройте базовую структуру игры:
Импортировать пигейм, система
pygame.init()# Настраиваем окно
экран = pygame.display.set_mode((750, 450))# Настроить игровые часы
часы = pygame.time. Часы()# Настроить персонажа игрока
игрок = пигейм. Прямой(100, 200, 50, 50)# Установить препятствие
препятствие = pygame. Прямой(200, 200, 50, 50)# Настраиваем игровой цикл
покаИстинный:
# Обработка событий
для событие в pygame.event.get():
если event.type == pygame. ПОКИДАТЬ:
pygame.выйти()
sys.exit()если event.type == pygame. КЛЮЧ:
если event.key == pygame. K_LEFT:
игрок.х -= 10
Элиф event.key == pygame. К_ПРАВО:
игрок.х += 10
# Обновить состояние игры
# Рисуем игру
экран.заполнить((0, 0, 0))
pygame.draw.rect (экран, (255, 0, 0), игрок)
pygame.draw.rect (экран, (0, 255, 0), препятствие)
# Обновить дисплей
pygame.display.flip()
# Ограничить частоту кадров
часы.тик(60)
С этим скелетным кодом в вашу основную игру можно играть. Нажмите влево или вправо, чтобы переместить персонажа игрока, обозначенного красным квадратом.
Отображение и обновление счета игры
Теперь, когда вы настроили базовую игру, добавьте систему подсчета очков и отобразите счет на экране.
Настройка Pygame для рендеринга текста
Чтобы отобразить текст в Pygame, нам сначала нужно импортировать необходимые модули и инициализировать модуль шрифта. Для этого используйте следующий код в верхней части скрипта:
Импортировать пигейм
Импортировать система
Импортировать Операционные системы
pygame.init()
pygame.font.init()
Модуль pygame.font позволяет использовать возможности рендеринга текста Pygame, а функция pygame.init() инициализирует модуль шрифта.
Создание базовой системы подсчета очков
Затем создайте базовую систему подсчета очков для своей игры. Для этого объявите и инициализируйте две переменные: score и score_increment. Переменная score будет отслеживать текущий счет игрока, а переменная score_increment будет указывать, насколько должен увеличиваться счет каждый раз, когда игрок касается препятствия.
Добавьте следующий код в начало скрипта, под импортом:
оценка = 0
счет_инкремент = 10
Затем обновляйте счет по ходу игры. В игровом цикле вы можете проверить, сталкивается ли персонаж игрока с препятствием. Если это так, увеличьте оценку на величину, указанную в переменной score_increment.
Обновите игровой цикл, включив в него следующий код:
# Обновить состояние игры
если player.colliderect (препятствие):
оценка += приращение_оценки
Этот код проверяет, сталкивается ли персонаж игрока с препятствием. Если они есть, он увеличивает счет на указанную сумму.
Отображение счета на экране с помощью модуля шрифтов
Теперь, когда у нас есть базовая система оценки, давайте отобразим оценку на экране с помощью модуля шрифта.
Во-первых, давайте настроим объект шрифта, добавив следующий код в начало игрового цикла:
# Настраиваем объект шрифта
шрифт = pygame.font. Шрифт(Никто, 36)
Этот код создает объект шрифта размером 36 пикселей без указания семейства шрифтов. Вы можете настроить шрифт и размер шрифта, указав другой файл шрифта и размер в функции Font().
Далее, давайте нарисуем счет на экране. Добавьте следующий код в игровой цикл после того, как вы обновили состояние игры и заполнили экран:
# Нарисуйте счет на экране
score_text = шрифт.рендер(f'Счет: {счет}', Истинный, (255, 255, 255))
screen.blit(score_text,(10, 10))
Этот код использует метод render() объекта шрифта для создания текстовой поверхности, содержащей партитуру, а затем переносит (отрисовывает) текстовую поверхность на экран в позиции (10, 10).
Настройка внешнего вида текста партитуры
Наконец, настройте внешний вид текста партитуры, выбрав шрифт и размер шрифта, а также изменив цвет текста.
Чтобы выбрать конкретный шрифт и размер шрифта, передайте файл и размер шрифта в качестве аргументов функции Font():
шрифт = pygame.font. Шрифт('arial.ttf', 48)
Вы можете легко скачать разные файлы шрифтов из Интернета. После загрузки просто поместите файл шрифта в корень вашего рабочего каталога.
Чтобы изменить цвет текста, передайте цветовой кортеж в качестве третьего аргумента метода render():
score_text = шрифт.рендер(f'Счет: {счет}', Истинный, (0, 255, 0))
Вот и все! Благодаря этим изменениям у вас теперь должна быть полностью функциональная система игровых очков, которая отображает счет на экране и обновляет его по мере прохождения игроком игры. Вы можете дополнительно настроить внешний вид текста партитуры, экспериментируя с различными семействами шрифтов, размерами и цветами.
Отслеживание очков в игре
Ниже приведен полный рабочий код, вы также можете найти код на этом Гитхаб репо.
Импортировать пигейм
Импортировать Операционные системыpygame.init()
pygame.font.init()оценка = 0
счет_инкремент = 10# Настраиваем окно
экран = pygame.display.set_mode((750, 450))# Настроить игровые часы
часы = pygame.time. Часы()# Настроить персонажа игрока
игрок = пигейм. Прямой(100, 200, 50, 50)# Установить препятствие
препятствие = pygame. Прямой(200, 200, 50, 50)# Настраиваем игровой цикл
покаИстинный:
шрифт = pygame.font. Шрифт(Никто, 36)
# Обработка событий
для событие в pygame.event.get():
если event.type == pygame. ПОКИДАТЬ:
pygame.выйти()
sys.exit()
если event.type == pygame. КЛЮЧ:
если event.key == pygame. K_LEFT:
игрок.х -= 10
Элиф event.key == pygame. К_ПРАВО:
игрок.х += 10
# Обновить состояние игры
если player.colliderect (препятствие):
оценка += приращение_оценки
# Рисуем игру
экран.заполнить((0, 0, 0))
pygame.draw.rect (экран, (255, 0, 0), игрок)
pygame.draw.rect (экран, (0, 255, 0), препятствие)
# Нарисуйте счет на экране
score_text = шрифт.рендер(f'Счет: {счет}', Истинный, (255, 255, 255))
screen.blit(score_text,(10, 10))
# Обновить дисплей
pygame.display.flip()
# Ограничить частоту кадров
часы.тик(60)
Этот код создает окно размером 750x450 пикселей, персонажа игрока и препятствие. Он использует игровой цикл для обработки событий, обновления состояния и отображения игры на экране. Он также включает в себя систему подсчета очков, которая увеличивает счет на десять очков каждый раз, когда персонаж игрока сталкивается с препятствием, а также объект шрифта и код рендеринга текста для отображения счета на экране.
В разделе обработки событий код также включает функции для перемещения персонажа игрока влево и вправо с помощью клавиш со стрелками.
Игровой цикл включает в себя код для обновления дисплея и ограничения частоты кадров до 60 кадров в секунду, что обеспечивает плавную работу игры.
В целом, этот код представляет собой базовый пример того, как отображать и обновлять игровые результаты в Pygame, и его можно дополнительно настраивать и расширять для создания более сложных и увлекательных игр.
Создавайте разные игры с помощью Pygame
Pygame — мощная и простая в использовании библиотека для создания игр на Python. Благодаря богатому набору функций и возможностей вы можете создавать широкий спектр игр, от простых прыгунов и платформеров до более сложных и захватывающих игр.
Являетесь ли вы новичком или опытным разработчиком игр, Pygame — отличный выбор для создания увлекательных и веселых игр.