A valósághű karakterek interakcióba lépnek, jellemzően úgy, hogy beszélnek egymással. Ügyeljen arra, hogy a párbeszédet hozzáférhető és kiegészítő módon mutassa be.

Ha a játékban karakterek szerepelnek, valószínűleg azt szeretné, ha beszélgetnének egymással. A párbeszédrendszer interaktív beszélgetéseket, a történet előrehaladását és a karakterfejlődést biztosítja. A Python Arcade könyvtár megkönnyíti a párbeszédrendszer integrálását a meglévő kódbázisba.

A párbeszédes rendszerrel beszélgetéseket hozhat létre a játékos és a nem játékos karakterek (NPC-k) között. A játékos választhat olyan válaszokat vagy döntéseket hozhat, amelyek befolyásolják a játék narratíváját vagy kimenetelét.

Ez a rendszer lehetővé teszi lenyűgöző történetek készítését és dinamikus interakciók létrehozását, így még magával ragadó játékélményt biztosít.

Hozzon létre egy egyszerű játékot

Kezdésként hozzon létre egy egyszerű játékot az Arcade könyvtár segítségével. Ez szolgál majd a párbeszédrendszer megvalósításának alapjául.

instagram viewer

A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.

Hozzon létre egy új nevű fájlt simple-game.py és határozza meg a Játszma, meccs osztályból öröklődik árkád. Ablak. Állítsa be a képernyő méreteit, inicializálja a lejátszó és a platform pozícióit, és valósítsa meg az alapvető rajzolási funkciókat. A A játékos balra és jobbra mozoghat a nyílbillentyűk segítségével.

Íme a kimenet:

Párbeszédpanel hozzáadása

Most, hogy megvan a játék alapvető felépítése, adj hozzá egy párbeszédpanelt, amely akkor jelenik meg, amikor a játékos ütközik egy ellenséggel. Létrehozhat egy párbeszédpanelt egyszerű alakzatokkal, és megjelenítheti a képernyőn.

Add hozzá a párbeszéd_aktív zászlót a Játszma, meccs osztály, amely jelzi, hogy a párbeszédpanelnek meg kell-e jelennie. Ban,-ben on_update módszer, ellenőrizze az ellenséges ütközést, és ha észleli, állítsa be párbeszéd_aktív nak nek Igaz.

Ban,-ben on_draw módszert, hívja a draw_dialogue_box módszer, ha a párbeszéd aktív. A draw_dialogue_box metódus egy téglalapot rajzol a párbeszédpanel háttereként, és egy szöveges üzenetet jelenít meg.

Hozzon létre egy új nevű fájlt dialog-box.py és adja hozzá a kódot az alábbi frissítésekkel:

# A játék osztályon belül

osztályJátszma, meccs(árkád. Ablak):
def__benne__(maga):
# ...

self.dialogue_active = Hamis

defon_update(self, delta_time):
ha self.check_enemy_collision():
self.dialogue_active = Igaz

defon_draw(maga):
# ...

ha self.dialogue_active:
self.draw_dialogue_box()

defcheck_enemy_collision(maga):
játékos_sugár = 25
távolság_x = abs (self.player_x - self.platform_x)
távolság_y = abs (self.player_y - self.platform_y)
kombinált_sugár = játékos_sugár + 25

ha távolság_x < kombinált_sugár és távolság_y < kombinált_sugár:
VisszatérésIgaz
más:
VisszatérésHamis

defdraw_dialogue_box(maga):
szöveg = "Szia játékos! Hogy vagy?"

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, fehér)

arcade.draw_text (szöveg, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, fekete, font_size=16,
horgony_x="központ", horgony_y="központ")

Alább látható a kimenet:

A párbeszéd szövegének megjelenítése

Mostantól dinamikus szöveges üzenetek megjelenítésével javíthatja párbeszédrendszerét. Hozzon létre egy listát a párbeszédablakokból, és ismételje meg őket a beszélgetés szimulálásához. Minden alkalommal, amikor a párbeszédablak megjelenik, új üzenet jelenik meg.

# A játék osztályon belül

osztályJátszma, meccs(árkád. Ablak):
def__benne__(maga):
# ...

self.dialogue_active = Hamis
self.dialogue_messages = [
"Szia játékos! Hogy vagy?",
– Szép idő van ma, igaz?,
– Óvakodj az előttünk leselkedő ellenségtől!
]
self.dialogue_index = 0

defdraw_dialogue_box(maga):

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, fehér)

arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, fekete, font_size=16,
horgony_x="központ", horgony_y="központ")

Három új változó bevezetése: párbeszéd_üzenetek, párbeszéd_index, és párbeszéd_aktív. A dialog_messages lista tartalmazza a párbeszédpanelen megjelenő szöveges üzeneteket. A dialog_index nyomon követi a megjelenítendő aktuális üzenetet. A párbeszédablak minden megjelenésekor növelheti a dialog_index értéket a következő üzenet megjelenítéséhez.

Gomb hozzáadása

A párbeszédrendszer interaktívabbá tételéhez adjon hozzá egy gombot a párbeszéd szövegének megváltoztatásához, amikor a lejátszó megnyomja. Hozzon létre egy új nevű fájlt multi-text.py és adja hozzá a kódot az alábbi frissítésekkel:

# A játék osztályon belül

osztályJátszma, meccs(árkád. Ablak):
def__benne__(maga):
# ...

self.dialogue_active = Hamis

self.dialogue_messages = [
"Szia játékos! Hogy vagy?",
– Szép idő van ma, igaz?,
– Óvakodj az előttünk leselkedő ellenségtől!
]

self.dialogue_index = 0

defon_mouse_press(self, x, y, gomb, módosítók):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)

ha self.dialogue_active:
ha gomb == arcade. MOUSE_BUTTON_LEFT:
self.dialogue_index = index

defdraw_dialogue_box(maga):
# ...

arcade.draw_text("Következő", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
fekete, font_size=16, horgony_x="központ", horgony_y="központ")

Add hozzá a on_mouse_press módszer a Játszma, meccs osztály. Ha a párbeszéd aktív, és megnyomja a bal egérgombot, ez a módszer növeli a párbeszéd_index a következő üzenet megjelenítéséhez a párbeszéd_üzenetek lista. A % len (self.dialogue_messages) biztosítja, hogy az index a lista elejére kerüljön a végére érve.

Kiegészítő funkciókkal együtt

A párbeszédrendszer továbbfejlesztése érdekében fontolóra veheti a következő további funkciók hozzáadását:

Több választási lehetőség

Egyetlen üzenet helyett több választási lehetőséget is megadhat a játékos számára. Ez lehetővé teszi a játékos számára, hogy befolyásolja a beszélgetés kimenetelét, vagy olyan döntéseket hozzon, amelyek befolyásolják a játék előrehaladását.

Ennek megvalósításához módosíthatja a draw_dialogue_box módszert a választási lehetőségek listájának megjelenítéséhez és a játékos választásának megfelelő kezeléséhez.

Karakterportrék

A párbeszédrendszer vizuális megjelenése érdekében karakterportrékat is beilleszthet a szöveg mellé. Minden karakterhez tartozhat egy megfelelő kép vagy sprite, amely a beszélgetés során ábrázolja őket. A karakterportrék megjelenítése segíthet a játékosoknak azonosítani a beszélőt, és mélyebbé teheti a történetmesélés élményét.

Szöveges animáció

A szöveget animálhatja, hogy látványosabbá tegye. Például beállíthatja, hogy a szöveg fokozatosan, egy karakterenként jelenjen meg a gépelés szimulálásához. Ez a várakozás érzését kelti, és vonzóbbá teheti a párbeszédet a játékos számára.

Hang hatások

Hangeffektusok hozzáadása párbeszédrendszere javíthatja a játék általános légkörét. Például lejátszhat hangeffektusokat, amikor megjelenik a párbeszédpanel, vagy amikor a lejátszó kiválaszt egy párbeszédpanelt. Ezekkel a hangjelzésekkel a beszélgetés még magával ragadóbb és hatásosabb lesz.

A párbeszédrendszer legjobb gyakorlatai

A párbeszédrendszer megvalósítása során tartsa szem előtt a következő bevált gyakorlatokat:

Tiszta felhasználói felület

Győződjön meg arról, hogy a párbeszédpanel és a szöveg olvasható, és megfelelően helyezkedik el a képernyőn. Használjon megfelelő betűtípusokat, színeket és méreteket, hogy a szöveg könnyen olvasható legyen.

Következetes karakterhang

Tartsa fenn a következetességet a karakterek beszédmódjában és a párbeszéd során használt hangnemben. Ez segít hiteles és vonzó beszélgetések létrehozásában.

Relevancia a játékmenet szempontjából

Győződjön meg arról, hogy a párbeszéd értelmesen hozzájárul a játék narratívájához, vagy releváns információkkal szolgál a játékos számára. Kerülje a túlzott vagy irreleváns beszélgetéseket, amelyek megzavarhatják a játékmenetet.

Tesztelés és iteráció

Alaposan tesztelje a párbeszédrendszert, hogy azonosítsa a problémákat vagy következetlenségeket. Ismételje meg a párbeszédet a játékosok visszajelzései alapján, hogy javítsa a beszélgetések általános minőségét és hatását.

Tedd szórakoztatóbbá a játékokat a párbeszédrendszerrel

Ha a Python Arcade könyvtárával párbeszédrendszert ad hozzá a játékhoz, az nagyban javíthatja a játékos élményét. Lehetővé teszi az interaktív beszélgetéseket, a történetmesélést és a karakterfejlesztést, így a játékokat még magával ragadóvá, lebilincselőbbé és szórakoztatóbbá teszi.