Realistické postavy interagujú, zvyčajne tak, že sa navzájom rozprávajú. Uistite sa, že svoj dialóg prezentujete prístupným a doplnkovým spôsobom.

Ak vaša hra obsahuje postavy, pravdepodobne budete chcieť, aby sa spolu rozprávali. Dialógový systém poskytuje interaktívne rozhovory, priebeh príbehu a vývoj postavy. Knižnica Python Arcade uľahčuje integráciu dialógového systému do vašej existujúcej kódovej základne.

Pomocou dialógového systému môžete vytvárať rozhovory medzi hráčmi a postavami, ktoré nie sú hráčmi (NPC). Hráč si môže vybrať odpovede alebo urobiť rozhodnutia, ktoré ovplyvňujú príbeh alebo výsledok hry.

Tento systém vám umožňuje vytvárať pútavé príbehy a vytvárať dynamické interakcie, čím poskytuje pohlcujúcejší herný zážitok.

Vytvorte jednoduchú hru

Ak chcete začať, vytvorte jednoduchú hru pomocou knižnice Arcade. To bude slúžiť ako základ pre implementáciu dialógového systému.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

instagram viewer

Vytvorte nový súbor s názvom jednoduchá hra.py a definovať a Hra triedy, ktorá dedí z pasáž. okno. Nastavte rozmery obrazovky, inicializujte pozície prehrávača a platformy a implementujte základné funkcie kreslenia. The hráč sa môže pohybovať doľava a doprava pomocou klávesov so šípkami.

Tu je výstup:

Pridanie dialógového okna

Teraz, keď máte základnú štruktúru hry, pridajte dialógové okno, ktoré sa zobrazí, keď sa hráč zrazí s nepriateľom. Pomocou jednoduchých tvarov môžete vytvoriť dialógové okno a zobraziť ho na obrazovke.

Pridaj dialóg_aktívny vlajka do Hra trieda, ktorá označuje, či sa má zobraziť dialógové okno. V on_update metóda, skontrolujte zrážku s nepriateľoma ak sa zistí, nastavte dialóg_aktívny do Pravda.

V on_draw metódu, zavolajte kresliť_dialógový_box ak je dialóg aktívny. The kresliť_dialógový_box metóda nakreslí obdĺžnik ako pozadie dialógového okna a zobrazí textovú správu.

Vytvorte nový súbor s názvom dialógové okno.py a pridajte kód s nižšie uvedenými aktualizáciami:

# Vnútri triedy hry

triedaHra(arkáda. okno):
def__init__(ja):
# ...

self.dialogue_active = Nepravdivé

defon_update(self, delta_time):
ak self.check_enemy_collision():
self.dialogue_active = Pravda

defon_draw(ja):
# ...

ak self.dialogue_active:
self.draw_dialogue_box()

defcheck_nemy_collision(ja):
player_radius = 25
vzdialenosť_x = abs (self.player_x - self.platform_x)
vzdialenost_y = abs (self.player_y - self.platform_y)
combined_radius = hráč_radius + 25

ak vzdialenosť_x < kombinovaný_polomer a vzdialenosť_y < kombinovaný_polomer:
vrátiťPravda
inak:
vrátiťNepravdivé

defkresliť_dialógový_box(ja):
text = „Ahoj hráč! Ako sa máš?"

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

arcade.draw_text (text, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, čierna, veľkosť_fontu=16,
kotva_x="stred", kotva_y="stred")

Nižšie je výstup:

Zobrazenie textu dialógu

Teraz môžete vylepšiť svoj dialógový systém zobrazovaním dynamických textových správ. Vytvorte zoznam reťazcov dialógov a iterujte ich, aby ste simulovali konverzáciu. Vždy, keď sa zobrazí dialógové okno, zobrazí sa nová správa.

# Vnútri triedy hry

triedaHra(arkáda. okno):
def__init__(ja):
# ...

self.dialogue_active = Nepravdivé
self.dialogue_messages = [
„Ahoj hráč! Ako sa máš?",
"Dnes je pekné počasie, však?",
"Dajte si pozor na nepriateľov číhajúcich pred vami!"
]
self.dialogue_index = 0

defkresliť_dialógový_box(ja):

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

arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, čierna, veľkosť_fontu=16,
kotva_x="stred", kotva_y="stred")

Zaveďte tri nové premenné: dialógové_správy, dialógový_index, a dialóg_aktívny. Zoznam dialógových_správ obsahuje textové správy, ktoré zobrazí dialógové okno. Dialógový index sleduje aktuálnu správu, ktorá sa má zobraziť. Zakaždým, keď sa zobrazí dialógové okno, môžete zvýšiť dialógový index, aby sa zobrazila ďalšia správa.

Pridanie tlačidla

Ak chcete, aby bol dialógový systém interaktívnejší, pridajte tlačidlo na zmenu textu dialógu po stlačení prehrávačom. Vytvorte nový súbor s názvom multi-text.py a pridajte kód s nižšie uvedenými aktualizáciami:

# Vnútri triedy hry

triedaHra(arkáda. okno):
def__init__(ja):
# ...

self.dialogue_active = Nepravdivé

self.dialogue_messages = [
„Ahoj hráč! Ako sa máš?",
"Dnes je pekné počasie, však?",
"Dajte si pozor na nepriateľov číhajúcich pred vami!"
]

self.dialogue_index = 0

defon_mouse_press(vlastné, x, y, tlačidlo, modifikátory):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)

ak self.dialogue_active:
ak tlačidlo == arkáda. MOUSE_BUTTON_LEFT:
self.dialogue_index = index

defkresliť_dialógový_box(ja):
# ...

arcade.draw_text("Ďalšie", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
čierna, veľkosť_fontu=16, kotva_x="stred", kotva_y="stred")

Pridajte on_mouse_press metóda k Hra trieda. Keď je dialóg aktívny a stlačíte ľavé tlačidlo myši, táto metóda zvýši dialógový_index na zobrazenie ďalšej správy v dialógové_správy zoznam. The % len (self.dialogue_messages) zaisťuje, že sa index pri dosiahnutí konca zabalí na začiatok zoznamu.

Vrátane ďalších funkcií

Ak chcete systém dialógov ďalej vylepšiť, môžete zvážiť pridanie nasledujúcich dodatočných funkcií:

Viacnásobné voľby

Namiesto jednej správy môžete hráčovi poskytnúť viacero možností, z ktorých si môže vybrať. To umožňuje hráčovi ovplyvňovať výsledok rozhovoru alebo robiť rozhodnutia, ktoré ovplyvňujú priebeh hry.

Ak to chcete implementovať, môžete upraviť kresliť_dialógový_box spôsob, ako zobraziť zoznam možností a podľa toho spracovať výber prehrávača.

Portréty postáv

Ak chcete do svojho dialógového systému pridať vizuálny šmrnc, môžete do textu vložiť portréty postáv. Každá postava môže mať zodpovedajúci obrázok alebo sprite, ktorý ju reprezentuje počas rozhovoru. Zobrazenie portrétov postáv môže hráčom pomôcť identifikovať rečníka a dodať hĺbku zážitku z rozprávania.

Animácia textu

Text môžete animovať, aby bol vizuálne príťažlivejší. Môžete napríklad nastaviť, aby sa text zobrazoval postupne, jeden znak po znaku, aby ste simulovali písanie. To vytvára pocit očakávania a môže spôsobiť, že dialóg bude pre hráča pútavejší.

Zvukové efekty

Pridávanie zvukových efektov do vášho dialógového systému môže zlepšiť celkovú atmosféru hry. Môžete napríklad prehrávať zvukové efekty, keď sa zobrazí dialógové okno alebo keď prehrávač vyberie možnosť dialógu. Tieto zvukové podnety môžu spôsobiť, že konverzácia bude pôsobivejšia a pôsobivejšia.

Najlepšie postupy pre systém dialógu

Pri implementácii dialógového systému majte na pamäti nasledujúce osvedčené postupy:

Vymazať používateľské rozhranie

Uistite sa, že dialógové okno a text sú čitateľné a správne umiestnené na obrazovke. Používajte vhodné typy písma, farby a veľkosti, aby bol text ľahko čitateľný.

Konzistentný charakterový hlas

Udržujte konzistentnosť v spôsobe, akým postavy hovoria, a v tóne, ktorý používajú počas dialógu. To pomáha pri vytváraní dôveryhodných a pútavých rozhovorov.

Relevantnosť pre hrateľnosť

Uistite sa, že dialóg zmysluplne prispieva k príbehu hry alebo poskytuje hráčovi relevantné informácie. Vyhnite sa nadmerným alebo irelevantným konverzáciám, ktoré môžu narušiť priebeh hry.

Testovanie a opakovanie

Play dôkladne otestujte svoj dialógový systém, aby ste identifikovali akékoľvek problémy alebo nezrovnalosti. Iterujte svoj dialóg na základe spätnej väzby od hráčov, aby ste zlepšili celkovú kvalitu a vplyv konverzácií.

Urobte hry zábavnejšie so systémom dialógu

Pridanie dialógového systému do vašich hier pomocou knižnice Arcade v Pythone môže výrazne zlepšiť zážitok hráča. Umožňuje interaktívne konverzácie, rozprávanie príbehov a vývoj postavy, vďaka čomu sú vaše hry pohlcujúcejšie, pútavejšie a zábavnejšie.