Уведите елементе као што су оштећење играча, механика лечења и још много тога тако што ћете у своје игре укључити здравствени систем.
Имплементација здравственог система у игри може увелико побољшати искуство играња и додати додатни слој изазова и стратегије. ПиГаме пружа робустан скуп алата и функција за укључивање здравственог система, што олакшава креирање интерактивних искустава.
Направите једноставну игру
Пре него што почнете, уверите се да имате пип инсталиран на вашем систему. Користите ову команду да бисте инсталирали пигаме библиотека:
пип инсталл пигаме
Након тога, креирајте датотеку под називом симпле-гаме.пи и започните креирањем једноставне игре у којој играч може да се креће лево и десно.
Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.
У овој основној петљи игре, циљ играча ће бити да избегне судар са непријатељем.
увоз пигаме
увоз насумично# Иницијализујте ПиГаме
пигаме.инит()# Подесите прозор игре
800, 600
ширина_прозора, висина_прозора =
прозор = пигаме.дисплаи.сет_моде((ширина_прозора, висина_прозора))
пигаме.дисплаи.сет_цаптион(„Демо здравственог система“)# Атрибути играча
плаиер_видтх, плаиер_хеигхт = 50, 50
плаиер_к, плаиер_и = виндов_видтх // 2, висина_прозора - висина_играча - 10
плаиер_спеед = 1# Непријатељски атрибути
непријатељ_ширина, висина_непријатеља = 50, 50
непријатељ_к, непријатељ_и = рандом.рандинт(0, ширина_прозора - ширина_ непријатеља), 0
непријатељска_брзина = 0.3# Игра петља
трчање = Истина
док трчање:
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
трчање = Фалсе# Померите играча лево или десно
кључеви = пигаме.кеи.гет_прессед()
ако кључеви [пигаме. К_ЛЕФТ] и плаиер_к > 0:
плаиер_к -= плаиер_спеед
ако кључеви [пигаме. К_ДЕСНО] и плаиер_к < виндов_видтх - плаиер_видтх:
плаиер_к += плаиер_спеед# Померите непријатеља надоле
непријатељ_и += непријатељска_брзина# Цртање објеката игре
виндов.филл((0, 0, 0)) # Обришите екран
пигаме.драв.рецт (прозор, (255, 0, 0),
(плаиер_к, плаиер_и,
плаиер_видтх, плаиер_хеигхт))
пигаме.драв.рецт (прозор, (0, 255, 0),
(непријатељ_к, непријатељ_и,
непријатељ_ширина, непријатељ_висина)) # Нацртајте непријатеља
пигаме.дисплаи.упдате()
пигаме.куит()
Покрените код и видећете прозор са ликом играча који можете да контролишете помоћу тастера са стрелицом лево и десно.
Сада када имате основну поставку игре, дефинишите варијабле и константе које се односе на здравље играча. Можете користити једноставан здравствени систем где можете представити здравље играча нумеричком вредношћу. Такође можете дефинисати константе за максимално здравље играча и количину штете коју је нанео непријатељ.
Поставите почетно здравље играча на 100, дефинишите максимално здравље као 100 и поставите штету непријатеља на 20. Ове вредности се могу подесити у складу са специфичним потребама ваше игре.
# Здравље играча
играч_здравље = 100
мак_хеалтх = 100
енеми_дамаге = 20
Примена механике оштећења и лечења
Да бисте увели механику оштећења и исцељења, морате да откријете сударе између играча и непријатеља и поднесете одговарајуће здравствене промене. Такође можете да примените механизам за лечење играча када се помери са екрана.
Проверите да ли постоји а судара између играча а непријатељ упоређивањем њихових граничних правоугаоника. Ако се открије судар, одузмите вредност штете непријатеља од здравља играча.
Поред тога, ако се играч помери са врха екрана (плаиер_и < 0), додајте 10 њиховом здрављу и осигурајте да не прелази максимално здравље. Ово ствара механику лечења и ресетује позицију играча на дно екрана.
Креирајте нову датотеку под називом оштећење и зарастање.пи и додајте код са ажурирањима у наставку:
# Унутар петље игре, након ажурирања позиције непријатеља
# Откријте судар између играча и непријатеља
ако плаиер_к < енеми_к + непријатељ_видтх и \
плаиер_к + плаиер_видтх > непријатељ_к и \
плаиер_и < непријатељ_и + непријатељ_висина \
и плаиер_и + плаиер_хеигхт > непријатељ_и:
здравље_играча -= штета_непријатеља
штампа (плаиер_хеалтх)
# Излечите играча када се помери са екрана
ако плаиер_и < 0:
здравље_играча += 10
штампа (плаиер_хеалтх)
ако здравље_играча > максимално_здравље:
здравље_играча = максимално_здравље
плаиер_и = виндов_хеигхт - плаиер_хеигхт - 10
Испод је излаз:
Управљање сценаријима смрти играча и завршетка игре
Да бисте решили сценарије смрти играча и завршетка игре, морате да проверите да ли је здравље играча на нули. Ако јесте, прикажите а Крај игре поруку и поново покрените игру.
Додајте проверу да видите да ли је здравље играча испод или једнако нули. Ако је овај услов тачан, одштампајте Крај игре и ресетујте здравље и положај играча.
Креирајте нову датотеку под називом манаге-плаиер-деатх.пи и измените код следећим ажурирањима:
# Након ажурирања позиције играча
# Проверите да ли здравље играча достиже нулу
ако здравље_играча <= 0:
штампа ("Крај игре")
здравље_играча = максимално_здравље
плаиер_к = виндов_видтх // 2
плаиер_и = виндов_хеигхт - плаиер_хеигхт - 10
Укључујући додатне функције
Да бисте додатно унапредили здравствени систем, можете да уградите додатне функције. Испод је пример:
Појачања
Дефинишите атрибуте напајања, као што су његове димензије и положај. Такође, подесите вредност здравља коју ће играч добити када се судари са појачањем.
У оквиру петље игре откријте колизије између играча и укључења. Ако дође до судара, повећајте здравље играча за вредност здравља појачања, пазећи да не прелази максимално здравље. Затим насумично позиционирајте напајање на екрану. На крају, нацртајте објекат за напајање на екрану користећи плави правоугаоник.
Креирајте нову датотеку под називом повер-уп.пи и додајте код са ажурирањима у наставку:
# Дефинишите атрибуте за напајање
повер_уп_видтх, повер_уп_хеигхт = 30, 30
повер_уп_к, повер_уп_и = 200,200
повер_уп_хеалтх_валуе = 50# Унутар петље игре, након ажурирања позиције играча
# Откријте колизију између играча и укључивања
ако плаиер_к < повер_уп_к + повер_уп_видтх и\
плаиер_к + плаиер_видтх > повер_уп_к \
и плаиер_и < повер_уп_и + повер_уп_хеигхт\
и плаиер_и + плаиер_хеигхт > повер_уп_и:
плаиер_хеалтх += повер_уп_хеалтх_валуе
ако здравље_играча > максимално_здравље:
здравље_играча = максимално_здравље
повер_уп_к, повер_уп_и = 200,200
# Нацртајте објекат за напајање
пигаме.драв.рецт (прозор, (0, 0, 255),
(повер_уп_к, повер_уп_и,
повер_уп_видтх,
повер_уп_хеигхт))
Испод је излаз:
За сваку додатну функцију можете дефинисати потребне променљиве и константе и имплементирати одговарајућу механику у оквиру петље игре.
Најбоље праксе за здравствени систем
Када имплементирате здравствени систем у ПиГаме, имајте на уму следеће најбоље праксе:
Имплементирајте системе вођене догађајима
Уместо да непрекидно проверавате колизије или здравствене промене у оквиру петље игре, размислите о коришћењу система вођених догађајима. ПиГаме пружа могућности управљања догађајима, омогућавајући вам да покренете радње у вези са здрављем на основу специфичних догађаја, као што су догађаји колизије или догађаји подизања напајања.
Уравнотежите здравствене вредности
Подесите вредности здравља, вредности оштећења и стопе лечења у игри да бисте обезбедили уравнотежено искуство играња. Тестирање игре и прикупљање повратних информација од играча могу вам помоћи да фино подесите ове вредности за оптималну игру.
Дају повратне информације
Уверите се да играч добије јасне и значајне повратне информације у вези са својим здравственим статусом. Приказујте траку здравља уочљиво на екрану, користите визуелне назнаке као што су промене боје или анимације да бисте указали на оштећење или зарастање и пружају аудио или визуелне назнаке када здравље играча достигне критичне нивое.
Пратећи ове најбоље праксе, можете креирати робустан и привлачан здравствени систем који доприноси импресивном искуству играња.
Учините игре занимљивијим помоћу траке здравља
Имплементација здравственог система не само да додаје слој изазова, већ и чини игре привлачнијим за играче. Укључујући визуелне приказе здравља, као што су здравствене траке, играчи могу лако да процене свој тренутни статус и доносе стратешке одлуке. Штавише, додавање нивоа вашој игри може додатно побољшати искуство играња.