Въведете елементи като щети на играча, лечебни механики и други, като включите здравна система във вашите игри.

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

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

Преди да започнете, уверете се, че имате pip, инсталиран на вашата система. Използвайте тази команда, за да инсталирате pygame библиотека:

pip инсталирайте pygame

След това създайте файл с име проста-игра.py и започнете, като създадете проста игра, в която играчът може да се движи наляво и надясно.

Кодът, използван в тази статия, е достъпен в това GitHub хранилище и е безплатен за използване под лиценза на MIT.

В този основен цикъл на игра, целта на играча ще бъде да избегне сблъсък с врага.

импортиране pygame
импортиране случаен

# Инициализирайте PyGame
pygame.init()

# Настройте прозореца на играта

instagram viewer

прозорец_ширина, прозорец_височина = 800, 600
прозорец = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption(„Демо на здравната система“)

# Атрибути на играча
player_width, player_height = 50, 50
player_x, player_y = window_width // 2, window_height - player_height - 10
играч_скорост = 1

# Атрибути на врага
enemy_width, enemy_height = 50, 50
enemy_x, enemy_y = random.randint(0, window_width - enemy_width), 0
вражеска_скорост = 0.3

# Цикъл на играта
бягане = Вярно
докато работи:
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
бягане = Невярно

# Преместете плейъра наляво или надясно
ключове = pygame.key.get_pressed()
ако ключове [pygame. K_LEFT] и player_x > 0:
player_x -= играч_скорост
ако ключове [pygame. K_RIGHT] и player_x < window_width - player_width:
player_x += player_speed

# Преместете врага надолу
враг_y += враг_скорост

# Начертайте обекти на играта
window.fill((0, 0, 0)) # Изчистете екрана
pygame.draw.rect (прозорец, (255, 0, 0),
(player_x, player_y,
player_width, player_height))
pygame.draw.rect (прозорец, (0, 255, 0),
(враг_x, враг_y,
enemy_width, enemy_height)) # Нарисувайте враг
pygame.display.update()

pygame.quit()

Стартирайте кода и ще видите прозорец с персонаж на играч, който можете да контролирате с помощта на клавишите със стрелки наляво и надясно.

След като вече имате основна настройка на играта, дефинирайте променливите и константите, свързани със здравето на играча. Можете да използвате проста здравна система, където можете да представите здравето на играч чрез числова стойност. Можете също така да дефинирате константи за максималното здраве на играча и размера на щетите, нанесени от врага.

Задайте първоначалното здраве на играча на 100, определете максималното здраве на 100 и задайте щетите на врага на 20. Тези стойности могат да се коригират според специфичните нужди на вашата игра.

# Здраве на играча
играч_здраве = 100
max_health = 100
enemy_damage = 20

Внедряване на щети и механика за лечение

За да въведете механика за щети и лечение, трябва да откриете сблъсъци между играча и врага и да се справите със съответните промени в здравето. Можете също така да приложите механизъм за излекуване на играча, когато той се отдалечи от екрана.

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

Освен това, ако играчът излезе от горната част на екрана (player_y < 0), добавете 10 към тяхното здраве и се уверете, че то не надвишава максималното здраве. Това създава лечебна механика и нулира позицията на играча в долната част на екрана.

Създайте нов файл с име damage-and-healing.py и добавете кода със следните актуализации:

# Вътре в цикъла на играта, след актуализиране на позицията на врага
# Откриване на сблъсък между играч и враг
ако player_x < enemy_x + enemy_width и \
player_x + player_width > enemy_x и \
player_y < enemy_y + enemy_height \
и player_y + player_height > enemy_y:
играч_здраве -= враг_щети
печат (player_health)

# Излекувайте играча, когато се отдалечи от екрана
ако player_y < 0:
играч_здраве += 10
печат (player_health)
ако играч_здраве > максимално_здраве:
играч_здраве = максимално_здраве
player_y = window_height - player_height - 10

По-долу е резултатът:

Управление на сценарии за смърт на играч и игра

За да се справите със сценариите със смъртта на играча и края на играта, трябва да проверите дали здравето на играча достига нула. Ако има, покажете a Играта приключи съобщение и рестартирайте играта.

Добавете проверка, за да видите дали здравето на играча пада под или е равно на нула. Ако това условие е вярно, отпечатайте Играта приключи и нулиране на здравето и позицията на играча.

Създайте нов файл с име management-player-death.py и променете кода със следните актуализации:

# След актуализиране на позицията на играча

# Проверете дали здравето на играча достига нула
ако играч_здраве <= 0:
печат ("Играта приключи")
играч_здраве = максимално_здраве
player_x = window_width // 2
player_y = window_height - player_height - 10

Включително допълнителни функции

За да подобрите допълнително здравната система, можете да включите допълнителни функции. По-долу е даден пример:

Усилвания

Дефинирайте атрибутите на захранването, като неговите размери и позиция. Освен това задайте стойност на здравето, която играчът ще спечели, когато се сблъска със захранването.

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

Създайте нов файл с име power-up.py и добавете кода със следните актуализации:

# Дефинирайте атрибути за включване
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50

# Вътре в цикъла на играта, след актуализиране на позицията на играча
# Откриване на сблъсък между играча и захранването
ако player_x < power_up_x + power_up_width и\
player_x + player_width > power_up_x \
и player_y < power_up_y + power_up_height\
и player_y + player_height > power_up_y:
player_health += power_up_health_стойност
ако играч_здраве > максимално_здраве:
играч_здраве = максимално_здраве
power_up_x, power_up_y = 200,200

# Начертайте обект за включване
pygame.draw.rect (прозорец, (0, 0, 255),
(power_up_x, power_up_y,
power_up_width,
power_up_height))

По-долу е резултатът:

За всяка допълнителна функция можете да дефинирате необходимите променливи и константи и да приложите съответната механика в рамките на цикъла на играта.

Най-добри практики за здравната система

Когато внедрявате здравна система в PyGame, имайте предвид следните най-добри практики:

Внедряване на управлявани от събития системи

Вместо непрекъснато да проверявате за сблъсъци или промени в здравето в цикъла на играта, помислете за използване на системи, управлявани от събития. PyGame предоставя възможности за обработка на събития, което ви позволява да задействате действия, свързани със здравето, въз основа на конкретни събития, като събития на сблъсък или събития на включване.

Баланс на здравните ценности

Коригирайте стойностите на здравето, стойностите на щетите и нивата на изцеление във вашата игра, за да осигурите балансирано геймплей изживяване. Тестването на играта и събирането на обратна връзка от играчите може да ви помогне да настроите тези стойности за оптимален геймплей.

Предоставяне на обратна връзка

Уверете се, че играчът получава ясна и съдържателна обратна връзка относно здравословното си състояние. Показвайте лентата на здравето на видно място на екрана, използвайте визуални знаци като промени в цвета или анимации, за да посочите щети или изцеление, и предоставят аудио или визуални сигнали когато здравето на играча достигне критични нива.

Като следвате тези най-добри практики, можете да създадете стабилна и ангажираща здравна система, която допринася за поглъщащо геймплей изживяване.

Направете игрите по-ангажиращи със Health Bar

Внедряването на здравна система не само добавя ниво на предизвикателство, но и прави игрите по-ангажиращи за играчите. Чрез включването на визуални представяния на здравето, като ленти за здраве, играчите могат лесно да оценят текущото си състояние и да вземат стратегически решения. Нещо повече, добавянето на нива към вашата игра може допълнително да подобри игровото изживяване.