Желите да побољшате начин на који ваша игра управља опасностима? Претворите животе у здравље и додајте додатну димензију свом игрању.

Додавање здравственог система вашој аркадној игри може побољшати искуство играча и додати додатни слој изазова и ангажовања. Можете да створите импресивније искуство играња са приказом здравља играча и механике оштећења и лечења.

На срећу, имплементација здравственог система у Питхон-у помоћу библиотеке Арцаде је једноставна и захтева само неколико корака.

Направите једноставну игру

Први, инсталирајте пип на свој уређај и користите доњу команду да инсталирате библиотеку аркада:

пип инсталл арцаде

Након тога, почните креирањем једноставне игре користећи Арцаде библиотеку. Ова игра ће имати лик играча који може да се креће лево, десно, горе и доле и непријатељски објекат који представља претњу за играча.

Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.

Креирајте нову датотеку под називом симпле-гаме.пи и додајте код испод:

instagram viewer
увоз арцаде

# Подесите димензије прозора
СЦРЕЕН_ВИДТХ = 800
СЦРЕЕН_ХЕИГХТ = 600

# Подесите брзину кретања играча
ПЛАИЕР_МОВЕМЕНТ_СПЕЕД = 5
бела = аркада.боја. БЕО
плава = аркада.боја. ПЛАВИ
црвена = аркада.боја. РЕД

класаГамеВиндов(аркада. прозор):
деф__у томе__(само, ширина, висина):
супер().__инит__(ширина, висина)
арцаде.сет_бацкгроунд_цолор (бела)

# Креирајте играче и непријатељске објекте
селф.плаиер = аркада. СпритеЦирцле(30, Плави)
само.непријатељ = аркада. СпритеЦирцле(30, црвена)
селф.плаиер.центер_к = 100
селф.плаиер.центер_и = 100
селф.неми.центер_к = 400
селф.енеми.центер_и = 300

дефон_драв(сам):
арцаде.старт_рендер()
селф.плаиер.драв()
селф.неми.драв()

дефажурирање(селф, делта_тиме):
проћи

дефон_кеи_пресс(селф, кључ, модификатори):
ако кључ == арцаде.кеи. ЛИЈЕВО:
селф.плаиер.центер_к -= ПЛАИЕР_МОВЕМЕНТ_СПЕЕД
елиф кључ == арцаде.кеи. ЈЕЛ ТАКО:
селф.плаиер.центер_к += ПЛАИЕР_МОВЕМЕНТ_СПЕЕД
елиф кључ == арцаде.кеи. ГОРЕ:
селф.плаиер.центер_и += ПЛАИЕР_МОВЕМЕНТ_СПЕЕД
елиф кључ == арцаде.кеи. ДОЉЕ:
селф.плаиер.центер_и -= ПЛАИЕР_МОВЕМЕНТ_СПЕЕД

дефглавни():
игра = ГамеВиндов (СЦРЕЕН_ВИДТХ, СЦРЕЕН_ХЕИГХТ)
арцаде.рун()

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

Требало би да видите прозор који садржи два знака, представљена плавим и црвеним круговима:

За имплементацију здравственог система дефинисати варијабле и константе везане за здравље. Користићете их да пратите тренутно здравље играча и одредите правила за штету и лечење. Додајте следећи код унутар ГамеВиндов класа:

класаГамеВиндов(аркада. прозор):
деф__у томе__(само, ширина, висина):
# ...
# Променљиве и константе у вези са здрављем
селф.плаиер_хеалтх = 100

# Здравствени поени се лече у секунди
селф.хеал_рате = 1

# Тајмер за лечење
селф.хеал_тимер = 0

дефажурирање(селф, делта_тиме):
# ...
# Ажурирајте тајмер за лечење
селф.хеал_тимер += делта_тиме

# Излечите здравље играча сваке 2 секунде
ако селф.хеал_тимер >= 2:
селф.плаиер_хеалтх += селф.хеал_рате
селф.хеал_тимер = 0

# Уверите се да здравље не прелази максималну вредност
ако селф.плаиер_хеалтх > 100:
селф.плаиер_хеалтх = 100

Примена механике оштећења и лечења

Да примени механику оштећења и лечења, открити сударе између играча и непријатеља. Смањите здравље играча када се сударе са непријатељем и исцелите здравље играча сваке 2 секунде када се не сударају. Модифи тхе ажурирање() метод и додајте следећи код:

класаГамеВиндов(аркада. прозор):
деф__у томе__(само, ширина, висина):
# ...

дефажурирање(селф, делта_тиме):
# Откријте сударе између играча и непријатеља
ако арцаде.цхецк_фор_цоллисион (селф.плаиер, селф.енеми):
селф.плаиер_хеалтх -= 5

# ...

Управљање сценаријима смрти играча и завршетка игре

Да бисте управљали сценаријима смрти играча и завршетка игре, проверите да ли здравље играча достиже нулу или ниже. Ако здравље падне на нулу, сматрајте играча мртвим и завршите игру. Модифи тхе ажурирање() метод са следећим кодом:

класаГамеВиндов(аркада. прозор):
деф__у томе__(само, ширина, висина):
# ...

дефажурирање(селф, делта_тиме):
# ...

# Проверите да ли је здравље играча нула или ниже
ако селф.плаиер_хеалтх <= 0:
# Заврши игру
арцаде.цлосе_виндов()

# ...

Визуелизација траке здравља

Визуелни приказ здравља играча може значајно побољшати искуство играња. Направите траку здравља користећи правоугаонике да бисте приказали тренутни ниво здравља. Креирајте нову датотеку под називом хеалтх-бар.пи и додајте код са ажурирањима у наставку:

класаГамеВиндов(аркада. прозор):
деф__у томе__(само, ширина, висина):
# ...

дефон_драв(сам):
арцаде.старт_рендер()
селф.плаиер.драв()
селф.неми.драв()
сива = аркада.боја. СВЕТЛО СИВА
зелена = аркада.боја. ЗЕЛЕН

# Нацртајте траку здравља
арцаде.драв_рецтангле_филлед (СЦРЕЕН_ВИДТХ // 2, 20,
СЦРЕЕН_ВИДТХ, 20, сива)

хеалтх_видтх = селф.плаиер_хеалтх / 100 * СЦРЕЕН_ВИДТХ

арцаде.драв_рецтангле_филлед (хеалтх_видтх // 2, 20,
здравствена_ширина, 20, зелен)

Испод је излаз:

Укључујући додатне функције

Можете додатно побољшати здравствени систем са више функција, попут оних испод.

Нумерички дисплеј здравља

Поред траке здравља, можете приказати преостало здравље као нумеричку вредност на екрану. Ово пружа прецизну индикацију здравственог статуса играча. Додајте следећи код унутар он_драв() метод:

# Унутар методе он_драв().
црна = аркада.боја. ЦРН
текст = ф"Здравље: {селф.плаиер_хеалтх}"
арцаде.драв_тект (текст, 10, 10, црн, 14)

Здравствени додаци

Да бисте представили здравствена појачања, можете креирати посебне објекте који побољшавају здравље играча када се сударе са њима. Ево примера како можете да примените ову функцију:

# Унутар методе упдате().
ако арцаде.цхецк_фор_цоллисион (селф.плаиер, селф.повер_уп):
селф.плаиер_хеалтх += 20

# Уклоните напајање из игре
селф.повер_уп.килл()

Различити типови непријатеља

Да бисте својој игри додали дубину, можете увести различите типове непријатеља који играчу наносе различите нивое штете. Ово додаје стратешки елемент и омогућава разноврснија искуства играња. Ево имплементације ове функције:

# Унутар методе упдате().
ако арцаде.цхецк_фор_цоллисион (селф.плаиер, селф.енеми):
ако само.непријатељ.тип == "слаб":
селф.плаиер_хеалтх -= 5
елиф само.непријатељ.тип == "јако":
селф.плаиер_хеалтх -= 20

Укључивањем ових додатних функција у имплементацију вашег здравственог система, можете створити динамичнија и изазовнија искуства играња за своје играче.

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

Када имплементирате здравствени систем у своју аркадну игру, важно је да пратите најбоље праксе како бисте осигурали да је систем робустан и ефикасан. Ево неких од најбољих пракси које треба имати на уму:

Маке Ит Модулар

Задржите функционалност здравственог система у засебној класи или модулу како бисте га одржали модуларним и лако употребљивим у различитим пројектима игара. Ово промовише организацију кода и раздвајање брига.

Валидација уноса и мере заштите

Примените валидацију уноса да спречите да ваш код додељује неважеће вредности здравља. Исте мере заштите треба да штите од неважећих здравствених вредности када дође до оштећења или зарастања.

Сачувај и учитај механизам

Имплементирајте механизам за чување и учитавање који укључује здравствени статус играча. Ово омогућава играчима да наставе игру са нетакнутим напретком, укључујући здравље, чак и након изласка из игре.

Тестирање и руковање грешкама

Темељно тестирајте имплементацију здравственог система да бисте проверили његову исправност и поузданост. Користите одговарајуће технике за руковање грешкама да бисте ефикасно поступали са изузецима и рубним случајевима.

Доследне здравствене повратне информације

Обезбедите доследне и јасне повратне информације играчу о њиховом здравственом статусу. Можете додати аудио ефекте, визуелне назнаке, или чак хаптичке повратне информације, обезбеђујући да играчи знају своје здравствено стање у игри и могу да доносе информисане одлуке током игре.

Пратећи ове најбоље праксе, можете креирати робустан и ефикасан здравствени систем који побољшава искуство играња ваше аркадне игре уз одржавање квалитета и читљивости кода.

Учините игре забавнијим уз здравствени систем

Додавање здравственог система вашој игри може значајно побољшати целокупно искуство играча. Уводи елемент ризика и изазова, чинећи игру занимљивијом и кориснијом.

Визуелна репрезентација здравља омогућава играчима да лако процене свој тренутни статус, повећавајући урањање и стратешко доношење одлука.