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

В этом руководстве вы узнаете, как отображать и обновлять результаты игр в 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 — отличный выбор для создания увлекательных и веселых игр.