Търсите да усъвършенствате справянето с опасности в играта си? Превърнете живота в здраве и добавете допълнително измерение към своя геймплей.

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

За щастие внедряването на здравна система в Python с помощта на библиотеката Arcade е лесно и изисква само няколко стъпки.

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

първо, инсталирайте pip на вашето устройство и използвайте командата по-долу, за да инсталирате аркадната библиотека:

pip инсталирайте аркада

След това започнете, като създадете проста игра, използвайки библиотеката Arcade. Тази игра ще включва герой на играч, който може да се движи наляво, надясно, нагоре и надолу и вражески обект, който представлява заплаха за играча.

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

instagram viewer

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

импортиране аркада

# Задайте размери на прозореца
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# Задайте скоростта на движение на играча
PLAYER_MOVEMENT_SPEED = 5
бяло = аркада.цвят. БЯЛ
синьо = arcade.color. СИН
червено = arcade.color. ЧЕРВЕН

класGameWindow(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
super().__init__(ширина, височина)
arcade.set_background_color (бял)

# Създавайте играч и вражески обекти
self.player = аркада. SpriteCircle(30, син)
self.nemy = аркада. SpriteCircle(30, червен)
self.player.center_x = 100
self.player.center_y = 100
self.enemy.center_x = 400
self.enemy.center_y = 300

дефon_draw(себе си):
arcade.start_render()
self.player.draw()
self.enemy.draw()

дефактуализация(самостоятелно, делта_време):
пас

дефon_key_press(самостоятелно, ключ, модификатори):
ако ключ == arcade.key. НАЛЯВО:
self.player.center_x -= PLAYER_MOVEMENT_SPEED
елиф ключ == arcade.key. ДЯСНО:
self.player.center_x += PLAYER_MOVEMENT_SPEED
елиф ключ == arcade.key. НАГОРЕ:
self.player.center_y += PLAYER_MOVEMENT_SPEED
елиф ключ == arcade.key. НАДОЛУ:
self.player.center_y -= PLAYER_MOVEMENT_SPEED

дефосновен():
игра = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

ако __име__ == "__основен__":
основен ()

Трябва да видите прозорец, съдържащ два знака, представени със сини и червени кръгове:

За да приложите здравната система, дефинирайте променливи и константи, свързани със здравето. Ще ги използвате, за да следите текущото здраве на играча и да определяте правилата за увреждане и лечение. Добавете следния код вътре в GameWindow клас:

класGameWindow(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
# ...
# Свързани със здравето променливи и константи
self.player_health = 100

# излекувани здравни точки за секунда
self.heal_rate = 1

# Таймер за изцеление
self.heal_timer = 0

дефактуализация(самостоятелно, делта_време):
# ...
# Актуализирайте таймера за лечение
self.heal_timer += делта_време

# Лекувайте здравето на играча на всеки 2 секунди
ако self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0

# Уверете се, че здравето не надвишава максималната стойност
ако self.player_health > 100:
self.player_health = 100

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

За да приложите механиката за увреждане и лечение, откриване на сблъсъци между играча и врага. Намалете здравето на играча, когато се сблъска с врага, и лекувайте здравето на играча на всеки 2 секунди, когато не се сблъсква. Променете актуализация() метод и добавете следния код:

класGameWindow(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
# ...

дефактуализация(самостоятелно, делта_време):
# Откриване на сблъсъци между играч и враг
ако arcade.check_for_collision (self.player, self.enemy):
self.player_health -= 5

# ...

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

За да управлявате сценариите за смърт на играча и края на играта, проверете дали здравето на играча достига нула или по-ниско ниво. Ако здравето падне до нула, смятайте играча за мъртъв и прекратете играта. Променете актуализация() метод със следния код:

класGameWindow(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
# ...

дефактуализация(самостоятелно, делта_време):
# ...

# Проверете дали здравето на играча е нула или по-ниско
ако self.player_health <= 0:
# Край на играта
arcade.close_window()

# ...

Визуализиране на Health Bar

Визуалното представяне на здравето на играча може значително да подобри игровото изживяване. Създайте лента за здраве, като използвате правоъгълници, за да покажете текущото ниво на здраве. Създайте нов файл с име здраве-bar.py и добавете кода със следните актуализации:

класGameWindow(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
# ...

дефon_draw(себе си):
arcade.start_render()
self.player.draw()
self.enemy.draw()
сиво = arcade.color. СВЕТЛО СИВО
зелено = arcade.color. ЗЕЛЕНО

# Начертайте лента за здраве
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, сиво)

здраве_ширина = self.player_health / 100 * SCREEN_WIDTH

arcade.draw_rectangle_filled (health_width // 2, 20,
здраве_ширина, 20, зелено)

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

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

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

Цифров дисплей за здраве

В допълнение към лентата за здраве, можете да покажете оставащото здраве като цифрова стойност на екрана. Това дава точна индикация за здравословното състояние на играча. Добавете следния код вътре в on_draw() метод:

# Вътре в метода on_draw().
черно = arcade.color. ЧЕРЕН
текст = f"Здраве: {self.player_health}"
arcade.draw_text (текст, 10, 10, черно, 14)

Здравни бонуси

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

# Вътре в метода update().
ако arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20

# Премахнете захранването от играта
self.power_up.kill()

Разнообразни типове врагове

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

# Вътре в метода update().
ако arcade.check_for_collision (self.player, self.enemy):
ако self.nemy.type == "слаб":
self.player_health -= 5
елиф self.nemy.type == "силен":
self.player_health -= 20

Като включите тези допълнителни функции в внедряването на вашата здравна система, можете да създадете по-динамични и предизвикателни игрови изживявания за вашите играчи.

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

Когато внедрявате здравна система във вашата аркадна игра, важно е да следвате най-добрите практики, за да сте сигурни, че системата е стабилна и ефективна. Ето някои от най-добрите практики, които трябва да имате предвид:

Направете го модулен

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

Валидиране на входа и предпазни мерки

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

Механизъм за запазване и зареждане

Приложете механизъм за запазване и зареждане, който включва здравословното състояние на играча. Това позволява на играчите да подновят играта с непокътнат напредък, включително здравето им, дори след излизане от играта.

Тестване и обработка на грешки

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

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

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

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

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

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

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