Realistični liki komunicirajo, običajno tako, da govorijo drug z drugim. Poskrbite, da boste svoj dialog predstavili na dostopen in komplementaren način.

Če vaša igra vključuje like, boste verjetno želeli, da se med seboj pogovarjajo. Dialoški sistem omogoča interaktivne pogovore, napredovanje zgodbe in razvoj likov. Knjižnica Python Arcade olajša integracijo dialog sistema v vašo obstoječo kodno zbirko.

S sistemom dialoga lahko ustvarite pogovore med igralci in neigralci (NPC). Igralec lahko izbere odgovore ali sprejme odločitve, ki vplivajo na pripoved ali izid igre.

Ta sistem vam omogoča ustvarjanje privlačnih zgodb in ustvarjanje dinamičnih interakcij, kar zagotavlja bolj poglobljeno izkušnjo igranja.

Ustvari preprosto igro

Za začetek ustvarite preprosto igro z uporabo knjižnice Arcade. To bo osnova za uveljavitev sistema dialoga.

Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.

Ustvari novo datoteko z imenom simple-game.py

instagram viewer
in definirajte a Igra razred, ki deduje od arkada. Okno. Nastavite dimenzije zaslona, ​​inicializirajte položaje igralca in platforme ter implementirajte osnovno funkcionalnost risanja. The igralec se lahko premika levo in desno s puščičnimi tipkami.

Tukaj je rezultat:

Dodajanje pogovornega okna

Zdaj, ko imate osnovno strukturo igre, dodajte pogovorno okno, ki se prikaže, ko igralec trči s sovražnikom. S preprostimi oblikami lahko ustvarite pogovorno okno in ga prikažete na zaslonu.

Dodaj a dialog_aktiven zastavo do Igra razred, ki označuje, ali naj se prikaže pogovorno okno. V on_update metoda, preveri trčenje sovražnika, in če je zaznana, nastavite dialog_aktiven do Prav.

V on_draw metodo, pokličite draw_dialogue_box če je dialog aktiven. The draw_dialogue_box metoda nariše pravokotnik kot ozadje pogovornega okna in prikaže besedilno sporočilo.

Ustvari novo datoteko z imenom dialog-box.py in dodajte kodo s spodnjimi posodobitvami:

# Znotraj razreda igre

razredIgra(arkadne. okno):
def__v__(sebe):
# ...

self.dialogue_active = False

defon_update(sam, delta_time):
če self.check_enemy_collision():
self.dialogue_active = Prav

defon_draw(sebe):
# ...

če self.dialogue_active:
self.draw_dialogue_box()

defpreveri_sovražnika_trk(sebe):
polmer_igralca = 25
distance_x = abs (self.player_x - self.platform_x)
distance_y = abs (self.player_y - self.platform_y)
kombinirani_polmer = polmer_igralca + 25

če razdalja_x < kombinirani_polmer in razdalja_y < kombinirani_polmer:
vrnitevPrav
drugače:
vrnitevFalse

defdraw_dialogue_box(sebe):
besedilo = "Pozdravljen, igralec! kako si?"

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

arcade.draw_text (besedilo, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, črna, velikost_pisave=16,
sidro_x="center", sidro_y="center")

Spodaj je rezultat:

Prikaz besedila dialoga

Zdaj lahko izboljšate svoj sistem dialoga s prikazovanjem dinamičnih besedilnih sporočil. Ustvarite seznam dialognih nizov in jih ponavljajte, da simulirate pogovor. Vsakič, ko se pojavi pogovorno okno, bo prikazano novo sporočilo.

# Znotraj razreda igre

razredIgra(arkadne. okno):
def__v__(sebe):
# ...

self.dialogue_active = False
self.dialogue_messages = [
"Pozdravljen, igralec! kako si?",
"Danes je lepo vreme, kajne?",
"Pazite se sovražnikov, ki prežijo pred vami!"
]
self.dialogue_index = 0

defdraw_dialogue_box(sebe):

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

arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, črna, velikost_pisave=16,
sidro_x="center", sidro_y="center")

Uvedite tri nove spremenljivke: dialog_messages, dialog_index, in dialog_aktiven. Seznam dialogue_messages vsebuje besedilna sporočila, ki jih bo prikazalo pogovorno okno. Dialog_index spremlja trenutno sporočilo za prikaz. Vsakič, ko se prikaže pogovorno okno, lahko povečate dialog_index za prikaz naslednjega sporočila.

Dodajanje gumba

Če želite, da bo sistem dialogov bolj interaktiven, dodajte gumb za spreminjanje besedila dialoga, ko ga pritisne igralec. Ustvari novo datoteko z imenom multi-text.py in dodajte kodo s spodnjimi posodobitvami:

# Znotraj razreda igre

razredIgra(arkadne. okno):
def__v__(sebe):
# ...

self.dialogue_active = False

self.dialogue_messages = [
"Pozdravljen, igralec! kako si?",
"Danes je lepo vreme, kajne?",
"Pazite se sovražnikov, ki prežijo pred vami!"
]

self.dialogue_index = 0

defon_mouse_press(sam, x, y, gumb, modifikatorji):
indeks = (self.dialogue_index + 1) % len (self.dialogue_messages)

če self.dialogue_active:
če gumb == arkada. MOUSE_BUTTON_LEFT:
self.dialogue_index = kazalo

defdraw_dialogue_box(sebe):
# ...

arcade.draw_text("Naslednji", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
črna, velikost_pisave=16, sidro_x="center", sidro_y="center")

Dodajte on_mouse_press metoda za Igra razred. Ko je pogovorno okno aktivno in pritisnete levi gumb miške, ta metoda poveča dialog_index za prikaz naslednjega sporočila v dialog_messages seznam. The % len (self.dialogue_messages) zagotavlja, da se indeks ovije na začetek seznama, ko doseže konec.

Vključno z dodatnimi funkcijami

Če želite še izboljšati sistem dialoga, lahko razmislite o dodajanju naslednjih dodatnih funkcij:

Več možnosti

Namesto enega sporočila lahko igralcu ponudite več izbir. To omogoča igralcu, da vpliva na izid pogovora ali sprejema odločitve, ki vplivajo na napredovanje igre.

Če želite to izvesti, lahko spremenite draw_dialogue_box metoda za prikaz seznama izbir in ustrezno obravnavanje igralčeve izbire.

Portreti likov

Če želite svojemu sistemu dialogov dodati vizualni pridih, lahko poleg besedila vključite portrete likov. Vsak znak ima lahko ustrezno sliko ali sprite, ki ga predstavlja med pogovorom. Prikazovanje portretov likov lahko pomaga igralcem prepoznati govorca in doda globino izkušnji pripovedovanja zgodb.

Besedilna animacija

Besedilo lahko animirate, da bo vizualno bolj privlačno. Besedilo lahko na primer naredite postopoma, en znak naenkrat, da simulirate tipkanje. To ustvari občutek pričakovanja in lahko naredi dialog za igralca bolj privlačen.

Zvočni učinki

Dodajanje zvočnih učinkov vašemu sistemu dialogov lahko izboljša splošno vzdušje igre. Na primer, lahko predvajate zvočne učinke, ko se prikaže pogovorno okno ali ko predvajalnik izbere možnost dialoga. Ti zvočni znaki lahko naredijo pogovor bolj poglobljen in vpliven.

Najboljše prakse za sistem dialoga

Pri izvajanju sistema dialoga upoštevajte naslednje najboljše prakse:

Jasen uporabniški vmesnik

Prepričajte se, da sta pogovorno okno in besedilo čitljiva in pravilno nameščena na zaslonu. Uporabite ustrezne pisave, barve in velikosti, da bo besedilo lahko berljivo.

Dosleden značajski glas

Ohranite doslednost v načinu govora likov in tonu, ki ga uporabljajo v celotnem dialogu. To pomaga pri ustvarjanju verodostojnih in privlačnih pogovorov.

Pomen za igranje

Poskrbite, da bo dialog pomembno prispeval k pripovedi igre ali igralcu zagotovil ustrezne informacije. Izogibajte se pretiranim ali nepomembnim pogovorom, ki lahko zmotijo ​​tok igranja.

Testiranje in ponovitev

Temeljito preizkusite svoj sistem za dialog, da ugotovite morebitne težave ali nedoslednosti. Ponovite svoj dialog na podlagi povratnih informacij igralcev, da izboljšate splošno kakovost in učinek pogovorov.

Naredite igre bolj zabavne s sistemom dialoga

Dodajanje sistema dialoga vašim igram z uporabo knjižnice Arcade v Pythonu lahko zelo izboljša izkušnjo igralca. Omogoča interaktivne pogovore, pripovedovanje zgodb in razvoj likov, zaradi česar so vaše igre bolj poglobljene, privlačne in zabavne.