Realistické postavy interagují, obvykle tak, že spolu mluví. Ujistěte se, že svůj dialog prezentujete přístupným a doplňujícím způsobem.
Pokud vaše hra obsahuje postavy, pravděpodobně budete chtít, aby spolu mluvily. Dialogový systém poskytuje interaktivní konverzace, vývoj příběhu a vývoj postavy. Knihovna Python Arcade usnadňuje integraci systému dialogů do vaší stávající kódové základny.
Pomocí dialogového systému můžete vytvářet konverzace mezi hráčem a nehráčskými postavami (NPC). Hráč si může vybrat odpovědi nebo učinit rozhodnutí, která ovlivní příběh nebo výsledek hry.
Tento systém vám umožňuje vytvářet působivé příběhy a vytvářet dynamické interakce, které poskytují pohlcující herní zážitek.
Vytvořte jednoduchou hru
Chcete-li začít, vytvořte jednoduchou hru pomocí knihovny Arcade. To bude sloužit jako základ pro implementaci systému dialogu.
Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.
Vytvořte nový soubor s názvem jednoduchá hra.py
a definovat a Hra třídy, která dědí z pasáž. Okno. Nastavte rozměry obrazovky, inicializujte pozice přehrávače a platformy a implementujte základní funkce kreslení. The hráč se může pohybovat doleva a doprava pomocí kláves se šipkami.Zde je výstup:
Přidání dialogového okna
Nyní, když máte základní strukturu hry, přidejte dialogové okno, které se objeví, když se hráč srazí s nepřítelem. Pomocí jednoduchých tvarů můžete vytvořit dialogové okno a zobrazit jej na obrazovce.
Přidat dialog_aktivní vlajka k Hra class, která určuje, zda se má dialogové okno zobrazit. V on_update metoda, zkontrolovat kolizi s nepřítelema pokud je detekován, nastavte dialog_aktivní na Skutečný.
V on_draw metodu, zavolejte kreslit_dialogový_box pokud je dialog aktivní. The kreslit_dialogový_box metoda nakreslí obdélník jako pozadí dialogového okna a zobrazí textovou zprávu.
Vytvořte nový soubor s názvem dialog-box.py a přidejte kód s níže uvedenými aktualizacemi:
# Uvnitř třídy hry
třídaHra(pasáž. Okno):
def__init__(já):
# ...self.dialogue_active = Nepravdivé
defon_update(self, delta_time):
-li self.check_enemy_collision():
self.dialogue_active = Skutečnýdefon_draw(já):
# ...-li self.dialogue_active:
self.draw_dialogue_box()defcheck_nemy_collision(já):
player_radius = 25
distance_x = abs (self.player_x - self.platform_x)
distance_y = abs (self.player_y - self.platform_y)
combined_radius = player_radius + 25-li vzdálenost_x < kombinovaný_poloměr a vzdálenost_y < kombinovaný_poloměr:
vrátit seSkutečný
jiný:
vrátit seNepravdivé
defkreslit_dialogový_box(já):
text = „Ahoj, hráč! Jak se máte?"
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, bílá)
arcade.draw_text (text, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, černá, velikost_fontu=16,
kotva_x="centrum", kotva_y="centrum")
Níže je výstup:
Zobrazení textu dialogu
Nyní můžete vylepšit svůj dialogový systém zobrazováním dynamických textových zpráv. Vytvořte seznam dialogových řetězců a iterujte je, abyste simulovali konverzaci. Pokaždé, když se objeví dialogové okno, zobrazí se nová zpráva.
# Uvnitř třídy hry
třídaHra(pasáž. Okno):
def__init__(já):
# ...self.dialogue_active = Nepravdivé
self.dialogue_messages = [
„Ahoj, hráč! Jak se máte?",
"Dnes je pěkné počasí, že?",
"Pozor na nepřátele číhající před námi!"
]
self.dialogue_index = 0
defkreslit_dialogový_box(já):
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, bílá)
arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, černá, velikost_fontu=16,
kotva_x="centrum", kotva_y="centrum")
Zaveďte tři nové proměnné: dialogové_zprávy, dialog_index, a dialog_aktivní. Seznam dialogových_zpráv obsahuje textové zprávy, které dialogové okno zobrazí. Dialogový index sleduje aktuální zprávu, která se má zobrazit. Pokaždé, když se objeví dialogové okno, můžete zvýšit dialog_index, aby se zobrazila další zpráva.
Přidání tlačítka
Chcete-li, aby byl systém dialogů interaktivnější, přidejte tlačítko pro změnu textu dialogu při stisknutí hráčem. Vytvořte nový soubor s názvem multi-text.py a přidejte kód s níže uvedenými aktualizacemi:
# Uvnitř třídy hry
třídaHra(pasáž. Okno):
def__init__(já):
# ...self.dialogue_active = Nepravdivé
self.dialogue_messages = [
„Ahoj, hráč! Jak se máte?",
"Dnes je pěkné počasí, že?",
"Pozor na nepřátele číhající před námi!"
]self.dialogue_index = 0
defon_mouse_press(vlastní, x, y, tlačítko, modifikátory):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)-li self.dialogue_active:
-li tlačítko == arkáda. MOUSE_BUTTON_LEFT:
self.dialogue_index = indexdefkreslit_dialogový_box(já):
# ...
arcade.draw_text("Další", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
černá, velikost_fontu=16, kotva_x="centrum", kotva_y="centrum")
Přidat on_mouse_press metoda k Hra třída. Když je dialog aktivní a stisknete levé tlačítko myši, tato metoda zvýší hodnotu dialog_index pro zobrazení další zprávy v dialogové_zprávy seznam. The % len (self.dialogue_messages) zajišťuje, že se index při dosažení konce zabalí na začátek seznamu.
Včetně dalších funkcí
Chcete-li systém dialogů dále vylepšit, můžete zvážit přidání následujících dalších funkcí:
Více možností
Namísto jedné zprávy můžete hráči poskytnout více možností, ze kterých si může vybrat. To umožňuje hráči ovlivňovat výsledek konverzace nebo činit rozhodnutí, která ovlivňují vývoj hry.
Chcete-li to implementovat, můžete upravit kreslit_dialogový_box způsob, jak zobrazit seznam možností a podle toho zacházet s výběrem hráče.
Portréty postav
Chcete-li svému dialogovému systému dodat vizuální šmrnc, můžete vedle textu začlenit portréty postav. Každá postava může mít odpovídající obrázek nebo sprite, který ji reprezentuje během konverzace. Zobrazení portrétů postav může hráčům pomoci identifikovat mluvčího a dodat hloubku zážitku z vyprávění.
Animace textu
Text můžete animovat, aby byl vizuálně přitažlivější. Můžete například nastavit, aby se text objevoval postupně, jeden znak po druhém, abyste simulovali psaní. To vytváří pocit očekávání a může učinit dialog pro hráče poutavější.
Zvukové efekty
Přidání zvukových efektů do vašeho dialogového systému může zlepšit celkovou atmosféru hry. Můžete například přehrávat zvukové efekty, když se objeví dialogové okno nebo když přehrávač vybere možnost dialogu. Díky těmto zvukovým podnětům bude konverzace pohlcující a působivá.
Nejlepší postupy pro systém dialogu
Při implementaci systému dialogu mějte na paměti následující osvědčené postupy:
Vymazat uživatelské rozhraní
Ujistěte se, že dialogové okno a text jsou čitelné a správně umístěné na obrazovce. Používejte vhodná písma, barvy a velikosti, aby byl text snadno čitelný.
Konzistentní charakterový hlas
Udržujte konzistentnost ve způsobu, jakým postavy mluví, a v tónu, který používají během dialogu. To pomáhá vytvářet uvěřitelné a poutavé konverzace.
Relevance ke hře
Zajistěte, aby dialog smysluplně přispíval k příběhu hry nebo poskytoval hráči relevantní informace. Vyhněte se přílišným nebo irelevantním konverzacím, které mohou narušit plynulost hry.
Testování a iterace
Play si důkladně otestujte svůj dialogový systém, abyste zjistili případné problémy nebo nesrovnalosti. Opakujte svůj dialog na základě zpětné vazby od hráčů, abyste zlepšili celkovou kvalitu a dopad konverzací.
Udělejte hry zábavnější díky systému dialogů
Přidání dialogového systému do vašich her pomocí knihovny Arcade v Pythonu může výrazně zlepšit zážitek hráče. Umožňuje interaktivní konverzace, vyprávění příběhů a vývoj postav, díky čemuž jsou vaše hry pohlcující, poutavější a zábavnější.