Реалистички ликови ступају у интеракцију, обично тако што разговарају једни с другима. Водите рачуна да свој дијалог представите на приступачан и комплементаран начин.
Ако ваша игра садржи ликове, вероватно ћете желети да разговарају једни са другима. Систем дијалога пружа интерактивне разговоре, напредовање приче и развој ликова. Питхон Арцаде библиотека олакшава интеграцију система дијалога у вашу постојећу базу кода.
Са системом дијалога, можете креирати разговоре између играча и ликова који нису играчи (НПЦ). Играч може бирати одговоре или доносити одлуке које утичу на нарацију или исход игре.
Овај систем вам омогућава да правите убедљиве приче и креирате динамичке интеракције, пружајући импресивније искуство играња.
Направите једноставну игру
За почетак, направите једноставну игру користећи Арцаде библиотеку. Ово ће послужити као основа за имплементацију система дијалога.
Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.
Креирајте нову датотеку под називом симпле-гаме.пи и дефинише а Игра класа која наслеђује од арцаде. Прозор. Подесите димензије екрана, иницијализујте позицију плејера и платформе и примените основну функцију цртања. Тхе играч може да се креће лево и десно користећи тастере са стрелицама.
Ево излаза:
Додавање оквира за дијалог
Сада када имате основну структуру игре, додајте оквир за дијалог који се појављује када се играч судари са непријатељем. Можете креирати оквир за дијалог користећи једноставне облике и приказати га на екрану.
Додајте а дијалог_активан застава на Игра класе, која означава да ли треба да се прикаже оквир за дијалог. У он_упдате метод, проверите да ли постоји непријатељски судар, и ако се открије, поставите дијалог_активан до Истина.
У он_драв метод, позовите драв_диалогуе_бок метода ако је дијалог активан. Тхе драв_диалогуе_бок метода црта правоугаоник као позадину оквира за дијалог и приказује текстуалну поруку.
Креирајте нову датотеку под називом диалог-бок.пи и додајте код са ажурирањима у наставку:
# Унутар класе игре
класаИгра(аркада. прозор):
деф__у томе__(сам):
# ...селф.диалогуе_ацтиве = Фалсе
дефон_упдате(селф, делта_тиме):
ако селф.цхецк_енеми_цоллисион():
селф.диалогуе_ацтиве = Истинадефон_драв(сам):
# ...ако селф.диалогуе_ацтиве:
селф.драв_диалогуе_бок()дефцхецк_неми_цоллисион(сам):
плаиер_радиус = 25
дистанце_к = трбушњаци (селф.плаиер_к - селф.платформ_к)
дистанце_и = абс (селф.плаиер_и - селф.платформ_и)
комбиновани радијус = радијус_играча + 25ако растојање_к < комбиновани радијус и дистанце_и < комбиновани радијус:
повратакИстина
друго:
повратакФалсе
дефдрав_диалогуе_бок(сам):
текст = „Здраво, играчу! Како си?"
арцаде.драв_рецтангле_филлед (СЦРЕЕН_ВИДТХ // 2,
СЦРЕЕН_ХЕИГХТ // 2, 500, 200, бео)
арцаде.драв_тект (текст, СЦРЕЕН_ВИДТХ // 2,
СЦРЕЕН_ХЕИГХТ // 2 + 20, црна, величина слова=16,
анцхор_к="центар", сидро_и="центар")
Испод је излаз:
Приказивање текста дијалога
Сада можете побољшати свој систем дијалога приказивањем динамичких текстуалних порука. Направите листу низова дијалога и итерирајте их да бисте симулирали разговор. Сваки пут када се појави оквир за дијалог, приказаће се нова порука.
# Унутар класе игре
класаИгра(аркада. прозор):
деф__у томе__(сам):
# ...селф.диалогуе_ацтиве = Фалсе
селф.диалогуе_мессагес = [
„Здраво, играчу! Како си?",
"Лепо време данас, зар не?",
"Чувајте се непријатеља који вас вребају!"
]
селф.диалогуе_индек = 0
дефдрав_диалогуе_бок(сам):
арцаде.драв_рецтангле_филлед (СЦРЕЕН_ВИДТХ // 2,
СЦРЕЕН_ХЕИГХТ // 2, 500, 200, бео)
арцаде.драв_тект (селф.диалогуе_мессагес[селф.диалогуе_индек],
СЦРЕЕН_ВИДТХ // 2, СЦРЕЕН_ХЕИГХТ // 2 + 20, црна, величина слова=16,
анцхор_к="центар", сидро_и="центар")
Уведите три нове варијабле: поруке_дијалога, диалог_индек, и дијалог_активан. Листа диалогуе_мессагес садржи текстуалне поруке које ће оквир за дијалог приказати. Диалог_индек прати тренутну поруку коју треба приказати. Сваки пут када се појави оквир за дијалог, можете повећати диалог_индек да бисте приказали следећу поруку.
Додавање дугмета
Да би систем дијалога био интерактивнији, додајте дугме за промену текста дијалога када га притисне играч. Креирајте нову датотеку под називом мулти-тект.пи и додајте код са ажурирањима у наставку:
# Унутар класе игре
класаИгра(аркада. прозор):
деф__у томе__(сам):
# ...селф.диалогуе_ацтиве = Фалсе
селф.диалогуе_мессагес = [
„Здраво, играчу! Како си?",
"Лепо време данас, зар не?",
"Чувајте се непријатеља који вас вребају!"
]селф.диалогуе_индек = 0
дефон_моусе_пресс(селф, к, и, дугме, модификатори):
индекс = (селф.диалогуе_индек + 1) % лен (селф.диалогуе_мессагес)ако селф.диалогуе_ацтиве:
ако дугме == аркада. МОУСЕ_БУТТОН_ЛЕФТ:
селф.диалогуе_индек = индексдефдрав_диалогуе_бок(сам):
# ...
арцаде.драв_тект("Следећи", СЦРЕЕН_ВИДТХ // 2, СЦРЕЕН_ХЕИГХТ // 2 - 50,
црно, величина_фонта=16, сидро_к="центар", сидро_и="центар")
Додајте он_моусе_пресс метод за Игра класа. Када је дијалог активан и притиснете леви тастер миша, овај метод повећава вредност диалог_индек да бисте приказали следећу поруку у поруке_дијалога листа. Тхе % лен (селф.диалогуе_мессагес) осигурава да се индекс окреће на почетак листе када дође до краја.
Укључујући додатне функције
Да бисте додатно побољшали систем дијалога, можете размислити о додавању следећих додатних функција:
Вишеструки избори
Уместо једне поруке, играчу можете дати више опција за избор. Ово омогућава играчу да утиче на исход разговора или доноси одлуке које утичу на напредовање игре.
Да бисте ово применили, можете да измените драв_диалогуе_бок метод за приказ листе избора и у складу са тим поступати са избором играча.
Цхарацтер Портраитс
Да бисте свом систему дијалога додали визуелни штих, можете да уградите портрете ликова поред текста. Сваки лик може имати одговарајућу слику или дух који их представља током разговора. Приказивање портрета ликова може помоћи играчима да идентификују говорника и додају дубину искуству приповедања.
Тект Аниматион
Можете да анимирате текст да бисте га учинили визуелно привлачнијим. На пример, можете да учините да се текст појављује постепено, један по један знак, да бисте симулирали куцање. Ово ствара осећај ишчекивања и може учинити дијалог занимљивијим за играча.
Звучни ефекти
Додавање звучних ефеката да ваш систем дијалога може побољшати укупну атмосферу игре. На пример, можете да репродукујете звучне ефекте када се појави оквир за дијалог или када плејер одабере опцију дијалога. Ови звучни сигнали могу учинити да се разговор учини упечатљивијим и упечатљивијим.
Најбоље праксе за систем дијалога
Када имплементирате систем дијалога, имајте на уму следеће најбоље праксе:
Очистите кориснички интерфејс
Уверите се да су оквир за дијалог и текст читљиви и правилно постављени на екрану. Користите одговарајуће фонтове, боје и величине да би текст био лак за читање.
Доследан глас карактера
Одржавајте доследност у начину на који ликови говоре и тону који користе током дијалога. Ово помаже у стварању уверљивих и занимљивих разговора.
Релевантност за игру
Уверите се да дијалог значајно доприноси нарацији игре или пружа релевантне информације играчу. Избегавајте претеране или небитне разговоре који могу да поремете ток игре.
Тестирање и итерација
Тестирајте свој систем дијалога темељно да бисте идентификовали проблеме или недоследности. Понављајте свој дијалог на основу повратних информација играча да бисте побољшали укупан квалитет и утицај разговора.
Учините игре забавнијим уз систем дијалога
Додавање система дијалога вашим играма користећи Арцаде библиотеку у Питхон-у може знатно побољшати играчево искуство. Омогућава интерактивне разговоре, приповедање прича и развој ликова, чинећи ваше игре импресивнијим, занимљивијим и забавнијим за играње.