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
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 = Pravdefon_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 = kazalodefdraw_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.