В този урок ще научите как да показвате и актуализирате резултати от игри в Pygame, популярна библиотека на Python за разработка на игри. До края ще можете да създадете проста игра със скок и да показвате резултата на играча на екрана, докато напредва. Играта проследява въвеждането от клавиатурата, така че можете да местите играча наляво и надясно с помощта на клавишите със стрелки.
Създаване на проста игра
Преди да можете да показвате и актуализирате резултати в Pygame, първо трябва да създадете игра, с която да работите. В този урок ще създадете проста игра, в която играч може да се движи наляво или надясно. Но преди това трябваше pip, инсталиран на вашето устройство. След като инсталирате pip, изпълнете командата по-долу, за да инсталирате модула pygame:
пип Инсталирай pygame
За да започнете, импортирайте необходимите модули и настройте основната структура на играта:
импортиране pygame, sys
pygame.init()# Настройте прозореца
екран = pygame.display.set_mode((750, 450))# Настройте часовника за игра
часовник = pygame.time. Часовник()# Настройте героя на играча
играч = pygame. Rect(100, 200, 50, 50)# Поставете препятствието
пречка = pygame. Rect(200, 200, 50, 50)# Настройте цикъла на играта
докатоВярно:
# Обработвайте събития
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
pygame.quit()
sys.exit()ако event.type == pygame. KEYDOWN:
ако event.key == pygame. K_НАЛЯВО:
играч.x -= 10
елиф event.key == pygame. K_RIGHT:
играч.x += 10
# Актуализирайте състоянието на играта
# Начертайте играта
screen.fill((0, 0, 0))
pygame.draw.rect (екран, (255, 0, 0), играч)
pygame.draw.rect (екран, (0, 255, 0), препятствие)
# Актуализирайте дисплея
pygame.display.flip()
# Ограничете скоростта на кадрите
clock.tick(60)
С този скелет код вашата основна игра може да се играе. Натиснете наляво или надясно, за да преместите героя на играча, представен от червения квадрат.
Показване и актуализиране на резултата от играта
Сега, след като сте настроили основна игра, добавете система за точкуване и покажете резултата на екрана.
Настройване на Pygame за изобразяване на текст
За да покажем текст в Pygame, първо трябва да импортираме необходимите модули и да инициализираме модула за шрифтове. За да направите това, използвайте следния код в горната част на вашия скрипт:
импортиране pygame
импортиране система
импортиране операционна система
pygame.init()
pygame.font.init()
Модулът pygame.font ви позволява да използвате възможностите на Pygame за изобразяване на текст, а функцията pygame.init() инициализира модула за шрифтове.
Създаване на основна система за точкуване
След това създайте основна система за точкуване за вашата игра. За да направите това, декларирайте и инициализирайте две променливи: score и score_increment. Променливата резултат ще следи текущия резултат на играча, а променливата score_increment ще посочи колко трябва да се увеличава резултатът всеки път, когато играчът докосне препятствие.
Добавете следния код в горната част на вашия скрипт, под импортирания:
резултат = 0
резултат_увеличение = 10
След това актуализирайте резултата, докато играта напредва. В цикъла на играта можете да проверите дали персонажът на играча се сблъсква с препятствието. Ако са, увеличете резултата със сумата, посочена в променливата score_increment.
Актуализирайте цикъла на играта, за да включите следния код:
# Актуализирайте състоянието на играта
ако player.colliderect (препятствие):
резултат += увеличение_на резултата
Този код проверява дали персонажът на играча се сблъсква с препятствието. Ако са, той увеличава резултата с определената сума.
Показване на резултата на екрана с модула за шрифтове
След като вече имаме въведена основна система за точкуване, нека покажем резултата на екрана с помощта на модула за шрифтове.
Първо, нека настроим обекта на шрифта, като добавим следния код в горната част на цикъла на играта:
# Настройте обекта на шрифта
шрифт = pygame.font. шрифт (Нито един, 36)
Този код създава шрифтов обект с размер 36 пиксела и без указано семейство шрифтове. Можете да персонализирате шрифта и размера на шрифта, като посочите различен файл с шрифт и размер във функцията Font().
След това нека начертаем резултата на екрана. Добавете следния код към цикъла на играта, след като актуализирате състоянието на играта и запълните екрана:
# Начертайте резултата на екрана
score_text = font.render(f'Score: {резултат}', Вярно, (255, 255, 255))
screen.blit (score_text, (10, 10))
Този код използва метода render() на обекта на шрифта, за да създаде текстова повърхност, съдържаща партитурата, и след това изчертава (рисува) текстовата повърхност на екрана в позиция (10, 10).
Персонализиране на външния вид на текста на партитурата
И накрая, персонализирайте външния вид на текста на партитурата, като изберете шрифт и размер на шрифта и промените цвета на текста.
За да изберете конкретен шрифт и размер на шрифта, предайте файла и размера на шрифта като аргументи на функцията Font():
шрифт = pygame.font. шрифт ('arial.ttf', 48)
Можете лесно изтегляне на различни файлове с шрифтове от интернет. След като изтеглите, просто поставете файла с шрифта в основата на вашата работна директория.
За да промените цвета на текста, подайте цветен кортеж като трети аргумент на метода render():
score_text = font.render(f'Score: {резултат}', Вярно, (0, 255, 0))
И това е! С тези промени вече трябва да имате напълно функционална система за резултат от играта, която показва резултата на екрана и го актуализира, докато играчът напредва в играта. Можете допълнително да персонализирате външния вид на текста на партитурата, като експериментирате с различни семейства шрифтове, размери и цветове.
Проследяване на резултата в играта
По-долу е пълният работен код, можете също да намерите кода на това GitHub репо.
импортиране pygame
импортиране операционна системаpygame.init()
pygame.font.init()резултат = 0
резултат_увеличение = 10# Настройте прозореца
екран = pygame.display.set_mode((750, 450))# Настройте часовника за игра
часовник = pygame.time. Часовник()# Настройте героя на играча
играч = pygame. Rect(100, 200, 50, 50)# Поставете препятствието
пречка = pygame. Rect(200, 200, 50, 50)# Настройте цикъла на играта
докатоВярно:
шрифт = pygame.font. шрифт (Нито един, 36)
# Обработвайте събития
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
pygame.quit()
sys.exit()
ако event.type == pygame. KEYDOWN:
ако event.key == pygame. K_НАЛЯВО:
играч.x -= 10
елиф event.key == pygame. K_RIGHT:
играч.x += 10
# Актуализирайте състоянието на играта
ако player.colliderect (препятствие):
резултат += увеличение_на резултата
# Начертайте играта
screen.fill((0, 0, 0))
pygame.draw.rect (екран, (255, 0, 0), играч)
pygame.draw.rect (екран, (0, 255, 0), препятствие)
# Начертайте резултата на екрана
score_text = font.render(f'Score: {резултат}', Вярно, (255, 255, 255))
screen.blit (score_text, (10, 10))
# Актуализирайте дисплея
pygame.display.flip()
# Ограничете скоростта на кадрите
clock.tick(60)
Този код създава прозорец с размер 750x450 пиксела, герой на играч и препятствие. Той използва цикъл на игра за обработка на събития, актуализиране на състоянието и изтегляне на играта на екрана. Той също така включва система за точкуване, която увеличава резултата с десет точки всеки път, когато персонажът на играча се сблъсква с препятствието и обект на шрифт и код за изобразяване на текст за показване на резултата на екрана.
В секцията за обработка на събития кодът включва също функционалност за преместване на героя на играча наляво и надясно с помощта на клавишите със стрелки.
Цикълът на играта включва код за актуализиране на дисплея и ограничаване на честотата на кадрите до 60 FPS, гарантирайки, че играта върви гладко.
Като цяло, този код предоставя основен пример за това как да се показват и актуализират резултати от игри в Pygame и може да бъде допълнително персонализиран и разширен, за да създаде по-сложни и ангажиращи игри.
Създавайте различни игри с помощта на Pygame
Pygame е мощна и лесна за използване библиотека за създаване на игри в Python. С неговия богат набор от функции и възможности можете да създавате широка гама от игри, от прости джъмпъри и платформинги до по-сложни и завладяващи игри.
Независимо дали сте начинаещ или опитен разработчик на игри, Pygame е отличен избор за създаване на увлекателни и забавни игри.