Reālistiski varoņi mijiedarbojas, parasti runājot viens ar otru. Nodrošiniet, lai dialogs būtu pieejams un papildinošs.

Ja jūsu spēlē ir varoņi, jūs, iespējams, vēlēsities, lai viņi sarunātos viens ar otru. Dialogu sistēma nodrošina interaktīvas sarunas, stāsta virzību un rakstura attīstību. Python Arcade bibliotēka ļauj viegli integrēt dialoga sistēmu esošajā kodu bāzē.

Izmantojot dialoga sistēmu, varat izveidot sarunas starp spēlētāju un personāžiem, kas nav spēlētāji (NPC). Spēlētājs var izvēlēties atbildes vai pieņemt lēmumus, kas ietekmē spēles stāstījumu vai iznākumu.

Šī sistēma ļauj veidot aizraujošus stāstus un izveidot dinamisku mijiedarbību, nodrošinot aizraujošāku spēles pieredzi.

Izveidojiet vienkāršu spēli

Lai sāktu, izveidojiet vienkāršu spēli, izmantojot Arcade bibliotēku. Tas kalpos par pamatu dialoga sistēmas ieviešanai.

Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

Izveidojiet jaunu failu ar nosaukumu

instagram viewer
simple-game.py un definējiet a Spēle klase, kas manto no arkāde. Logs. Iestatiet ekrāna izmērus, inicializējiet atskaņotāja un platformas pozīcijas un ieviesiet pamata zīmēšanas funkcionalitāti. The spēlētājs var pārvietoties pa kreisi un pa labi izmantojot bulttaustiņus.

Šeit ir izvade:

Dialoga lodziņa pievienošana

Tagad, kad jums ir pamata spēles struktūra, pievienojiet dialoglodziņu, kas parādās, kad spēlētājs saduras ar ienaidnieku. Varat izveidot dialoglodziņu, izmantojot vienkāršas formas, un parādīt to ekrānā.

Pievienojiet a dialogs_aktīvs karogu uz Spēle klase, kas norāda, vai dialoglodziņā ir jāparāda. Iekš on_update metode, pārbaudiet ienaidnieka sadursmi, un, ja tiek konstatēts, iestatiet dialogs_aktīvs uz Taisnība.

Iekš on_draw metodi, zvaniet uz draw_dialogue_box metodi, ja dialogs ir aktīvs. The draw_dialogue_box metode uzzīmē taisnstūri kā dialoglodziņa fonu un parāda īsziņu.

Izveidojiet jaunu failu ar nosaukumu dialog-box.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:

# Spēles klasē

klasēSpēle(pasāža. logs):
def__tajā__(pats):
# ...

self.dialogue_active = Nepatiesi

defon_update(self, delta_time):
ja self.check_enemy_collision():
self.dialogue_active = Taisnība

defon_draw(pats):
# ...

ja self.dialogue_active:
self.draw_dialogue_box()

defpārbaudīt_ienaidnieka_sadursmi(pats):
atskaņotāja_rādiuss = 25
distance_x = abs (self.player_x — self.platform_x)
distance_y = abs (self.player_y — self.platform_y)
kombinētais_rādiuss = spēlētāja_rādiuss + 25

ja attālums_x < kombinētais_rādiuss un distance_y < kombinētais_rādiuss:
atgrieztiesTaisnība
cits:
atgrieztiesNepatiesi

defdraw_dialogue_box(pats):
teksts = "Sveiks, spēlētāj! Kā tev iet?"

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, balts)

arcade.draw_text (teksts, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, melns, font_size=16,
enkurs_x="centrs", anchor_y="centrs")

Zemāk ir izvade:

Dialoga teksta parādīšana

Tagad varat uzlabot savu dialogu sistēmu, parādot dinamiskas īsziņas. Izveidojiet dialoga virkņu sarakstu un atkārtojiet tās, lai simulētu sarunu. Katru reizi, kad tiek parādīts dialoglodziņš, tiks parādīts jauns ziņojums.

# Spēles klasē

klasēSpēle(pasāža. logs):
def__tajā__(pats):
# ...

self.dialogue_active = Nepatiesi
self.dialogue_messages = [
"Sveiks, spēlētāj! Kā tev iet?",
"Šodien ir jauks laiks, vai ne?",
"Uzmanieties no ienaidniekiem, kas slēpjas priekšā!"
]
self.dialogue_index = 0

defdraw_dialogue_box(pats):

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, balts)

arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, melns, font_size=16,
enkurs_x="centrs", anchor_y="centrs")

Ieviest trīs jaunus mainīgos: dialog_messages, dialog_index, un dialogs_aktīvs. Sarakstā dialog_messages ir īsziņas, kas tiks parādītas dialoglodziņā. Dialogs_index seko pašreizējam rādītajam ziņojumam. Katru reizi, kad parādās dialoglodziņš, varat palielināt dialog_index, lai parādītu nākamo ziņojumu.

Pogas pievienošana

Lai padarītu dialogu sistēmu interaktīvāku, pievienojiet pogu, lai mainītu dialoga tekstu, kad atskaņotājs to nospiež. Izveidojiet jaunu failu ar nosaukumu multi-text.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:

# Spēles klasē

klasēSpēle(pasāža. logs):
def__tajā__(pats):
# ...

self.dialogue_active = Nepatiesi

self.dialogue_messages = [
"Sveiks, spēlētāj! Kā tev iet?",
"Šodien ir jauks laiks, vai ne?",
"Uzmanieties no ienaidniekiem, kas slēpjas priekšā!"
]

self.dialogue_index = 0

defon_mouse_press(self, x, y, poga, modifikatori):
indekss = (self.dialogue_index + 1) % len (self.dialogue_messages)

ja self.dialogue_active:
ja poga == arkāde. MOUSE_BUTTON_LEFT:
self.dialogue_index = indekss

defdraw_dialogue_box(pats):
# ...

arcade.draw_text("Nākamais", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
melns, font_size=16, enkurs_x="centrs", anchor_y="centrs")

Pievienojiet on_mouse_press metode uz Spēle klasē. Kad dialogs ir aktīvs un nospiežat peles kreiso pogu, šī metode palielina dialog_index lai parādītu nākamo ziņojumu dialog_messages sarakstu. The % len (self.dialogue_messages) nodrošina, ka rādītājs tiek apvilkts līdz saraksta sākumam, sasniedzot beigas.

Ieskaitot papildu funkcijas

Lai vēl vairāk uzlabotu dialoga sistēmu, varat apsvērt iespēju pievienot šādas papildu funkcijas:

Vairākas izvēles iespējas

Viena ziņojuma vietā atskaņotājam varat piedāvāt vairākas izvēles iespējas. Tas ļauj spēlētājam ietekmēt sarunas iznākumu vai pieņemt lēmumus, kas ietekmē spēles gaitu.

Lai to īstenotu, varat modificēt draw_dialogue_box metode, lai parādītu izvēļu sarakstu un atbilstoši apstrādātu spēlētāja izvēli.

Varoņu portreti

Lai dialogu sistēmai piešķirtu vizuālu nojausmu, līdzās tekstam varat iekļaut tēlu portretus. Katram varonim var būt atbilstošs attēls vai spraits, kas to attēlo sarunas laikā. Personāžas portretu parādīšana var palīdzēt spēlētājiem atpazīt runātāju un pievienot stāstīšanas pieredzei dziļumu.

Teksta animācija

Varat animēt tekstu, lai tas būtu vizuāli pievilcīgāks. Piemēram, varat likt tekstam parādīties pakāpeniski, pa vienai rakstzīmei, lai simulētu rakstīšanu. Tas rada gaidīšanas sajūtu un var padarīt dialogu spēlētājam saistošāku.

Skaņas efekti

Skaņu efektu pievienošana jūsu dialoga sistēma var uzlabot kopējo spēles atmosfēru. Piemēram, varat atskaņot skaņas efektus, kad tiek parādīts dialoglodziņš vai kad atskaņotājs izvēlas dialoga opciju. Šīs audio norādes var padarīt sarunu ieskaujošāku un ietekmīgāku.

Dialoga sistēmas labākā prakse

Ieviešot dialoga sistēmu, ņemiet vērā tālāk norādīto paraugpraksi.

Notīrīt lietotāja interfeisu

Pārliecinieties, vai dialoglodziņš un teksts ir salasāmi un pareizi novietoti ekrānā. Izmantojiet atbilstošus fontus, krāsas un izmērus, lai teksts būtu viegli lasāms.

Konsekventa rakstura balss

Saglabājiet konsekvenci attiecībā uz to, kā varoņi runā, un toni, ko viņi izmanto visa dialoga laikā. Tas palīdz izveidot ticamas un saistošas ​​sarunas.

Atbilstība spēlei

Pārliecinieties, vai dialogs sniedz nozīmīgu ieguldījumu spēles stāstījuma veidošanā vai sniedz spēlētājam atbilstošu informāciju. Izvairieties no pārmērīgām vai neatbilstošām sarunām, kas var traucēt spēles gaitu.

Testēšana un iterācija

Play rūpīgi pārbaudiet dialoga sistēmu, lai noteiktu visas problēmas vai neatbilstības. Atkārtojiet savu dialogu, pamatojoties uz spēlētāju atsauksmēm, lai uzlabotu sarunu vispārējo kvalitāti un ietekmi.

Padariet spēles jautrākas, izmantojot dialoga sistēmu

Dialoga sistēmas pievienošana spēlēm, izmantojot Python Arcade bibliotēku, var ievērojami uzlabot spēlētāja pieredzi. Tas nodrošina interaktīvas sarunas, stāstu stāstīšanu un varoņu attīstību, padarot jūsu spēles aizraujošākas, saistošākas un jautrākas.