Realistiset hahmot ovat vuorovaikutuksessa, tyypillisesti puhumalla toisilleen. Varmista, että esität keskustelusi helposti ja toisiaan täydentävällä tavalla.

Jos pelissäsi on hahmoja, haluat todennäköisesti heidän keskustelevan keskenään. Dialogijärjestelmä tarjoaa interaktiivisia keskusteluja, tarinan etenemistä ja hahmojen kehittämistä. Python Arcade -kirjaston avulla on helppo integroida dialogijärjestelmä olemassa olevaan koodikantaasi.

Dialogijärjestelmän avulla voit luoda keskusteluja pelaajan ja ei-pelaajan hahmojen (NPC) välille. Pelaaja voi valita vastauksia tai tehdä päätöksiä, jotka vaikuttavat pelin tarinaan tai lopputulokseen.

Tämän järjestelmän avulla voit luoda kiehtovia tarinoita ja luoda dynaamisia vuorovaikutuksia, mikä tarjoaa mukaansatempaavamman pelikokemuksen.

Luo yksinkertainen peli

Aloita luomalla yksinkertainen peli Arcade-kirjaston avulla. Tämä toimii perustana dialogijärjestelmän toteuttamiselle.

Tässä artikkelissa käytetty koodi on saatavilla tässä GitHub-arkisto ja sen käyttö on ilmaista MIT-lisenssin alaisena.

instagram viewer

Luo uusi tiedosto nimeltä simple-game.py ja määrittele a Peli luokka, josta peritään pelihalli. Ikkuna. Aseta näytön mitat, alusta soittimen ja alustan paikat ja toteuta peruspiirtotoiminto. The pelaaja voi liikkua vasemmalle ja oikealle käyttämällä nuolinäppäimiä.

Tässä tulos:

Dialogilaatikon lisääminen

Nyt kun sinulla on peruspelirakenne, lisää valintaikkuna, joka tulee näkyviin, kun pelaaja törmää vihollisen kanssa. Voit luoda valintaikkunan käyttämällä yksinkertaisia ​​muotoja ja näyttää sen näytöllä.

Lisää dialog_active lippu Peli luokka, joka osoittaa, pitäisikö valintaikkunan näkyä. Vuonna on_update menetelmä, tarkista vihollisen törmäys, ja jos se havaitaan, aseta dialog_active to Totta.

Vuonna on_draw menetelmä, soita draw_dialogue_box menetelmää, jos dialogi on aktiivinen. The draw_dialogue_box menetelmä piirtää suorakulmion valintaikkunan taustaksi ja näyttää tekstiviestin.

Luo uusi tiedosto nimeltä dialog-box.py ja lisää koodi alla olevilla päivityksillä:

# Peliluokan sisällä

luokkaaPeli(pelihalli. Ikkuna):
def__sen sisällä__(itse):
# ...

self.dialogue_active = Väärä

defon_update(itse, delta_aika):
jos self.check_enemy_collision():
self.dialogue_active = Totta

defon_draw(itse):
# ...

jos self.dialogue_active:
self.draw_dialogue_box()

defcheck_enemy_collision(itse):
pelaajan_säde = 25
etäisyys_x = abs (self.player_x - self.platform_x)
etäisyys_y = abs (self.player_y - self.platform_y)
yhdistetty_säde = pelaajan_säde + 25

jos etäisyys_x < yhdistetty_säde ja etäisyys_y < yhdistetty_säde:
palataTotta
muu:
palataVäärä

defdraw_dialogue_box(itse):
teksti = "Hei pelaaja! Mitä kuuluu?"

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

arcade.draw_text (teksti, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, musta, font_size=16,
ankkuri_x="keskusta", ankkuri_y="keskusta")

Alla on tulos:

Dialogitekstin näyttäminen

Nyt voit parantaa dialogijärjestelmääsi näyttämällä dynaamisia tekstiviestejä. Luo luettelo dialogijonoista ja simuloi keskustelua iteroimalla niitä. Aina kun valintaikkuna tulee näkyviin, se näyttää uuden viestin.

# Peliluokan sisällä

luokkaaPeli(pelihalli. Ikkuna):
def__sen sisällä__(itse):
# ...

self.dialogue_active = Väärä
self.dialogue_messages = [
"Hei pelaaja! Mitä kuuluu?",
"Hyvä sää tänään, eikö niin?",
"Varo edessä väijyviä vihollisia!"
]
self.dialogue_index = 0

defdraw_dialogue_box(itse):

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

arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, musta, font_size=16,
ankkuri_x="keskusta", ankkuri_y="keskusta")

Esittele kolme uutta muuttujaa: dialog_messages, dialog_index, ja dialog_active. Dialogiviestit-luettelo sisältää tekstiviestit, jotka valintaikkuna näyttää. Dialogi_indeksi pitää kirjaa nykyisestä näytettävästä viestistä. Joka kerta kun valintaikkuna tulee näkyviin, voit suurentaa dialog_index-arvoa näyttääksesi seuraavan viestin.

Painikkeen lisääminen

Voit tehdä dialogijärjestelmästä interaktiivisemman lisäämällä painikkeen, joka muuttaa dialogin tekstiä, kun soitin painaa sitä. Luo uusi tiedosto nimeltä multi-text.py ja lisää koodi alla olevilla päivityksillä:

# Peliluokan sisällä

luokkaaPeli(pelihalli. Ikkuna):
def__sen sisällä__(itse):
# ...

self.dialogue_active = Väärä

self.dialogue_messages = [
"Hei pelaaja! Mitä kuuluu?",
"Hyvä sää tänään, eikö niin?",
"Varo edessä väijyviä vihollisia!"
]

self.dialogue_index = 0

defon_mouse_press(itse, x, y, painike, muokkaajat):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)

jos self.dialogue_active:
jos painike == pelihalli. MOUSE_BUTTON_LEFT:
self.dialogue_index = indeksi

defdraw_dialogue_box(itse):
# ...

arcade.draw_text("Seuraava", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
musta, font_size=16, ankkuri_x="keskusta", ankkuri_y="keskusta")

Lisää on_mouse_press menetelmään Peli luokkaa. Kun dialogi on aktiivinen ja painat hiiren vasenta painiketta, tämä menetelmä lisää arvoa dialog_index näyttääksesi seuraavan viestin dialog_messages lista. The % len (self.dialogue_messages) varmistaa, että hakemisto kiertyy luettelon alkuun, kun se saavuttaa lopun.

Sisältää lisäominaisuuksia

Dialogijärjestelmän parantamiseksi edelleen voit harkita seuraavien lisäominaisuuksien lisäämistä:

Useita vaihtoehtoja

Yhden viestin sijaan voit tarjota useita vaihtoehtoja, joista pelaaja voi valita. Näin pelaaja voi vaikuttaa keskustelun lopputulokseen tai tehdä päätöksiä, jotka vaikuttavat pelin etenemiseen.

Tämän toteuttamiseksi voit muokata draw_dialogue_box tapa näyttää valintaluettelo ja käsitellä soittimen valintaa sen mukaisesti.

Hahmon muotokuvat

Voit lisätä visuaalista tyyliä dialogijärjestelmääsi sisällyttämällä tekstin rinnalle hahmokuvia. Jokaisella hahmolla voi olla vastaava kuva tai sprite, joka edustaa häntä keskustelun aikana. Hahmokuvien näyttäminen voi auttaa pelaajia tunnistamaan puhujan ja lisätä tarinankerrontakokemukseen syvyyttä.

Tekstianimaatio

Voit animoida tekstin tehdäksesi siitä visuaalisesti houkuttelevamman. Voit esimerkiksi saada tekstin näkyviin asteittain, yksi merkki kerrallaan, simuloidaksesi kirjoittamista. Tämä luo odotuksen tunteen ja voi tehdä vuoropuhelusta kiinnostavamman pelaajan kannalta.

Ääniefektit

Äänitehosteiden lisääminen dialogijärjestelmääsi voi parantaa pelin yleistä ilmapiiriä. Voit esimerkiksi toistaa äänitehosteita, kun valintaikkuna tulee näkyviin tai kun soitin valitsee dialogivaihtoehdon. Nämä äänimerkit voivat tehdä keskustelusta mukaansatempaavamman ja vaikuttavamman.

Dialogijärjestelmän parhaat käytännöt

Kun otat käyttöön dialogijärjestelmän, pidä mielessä seuraavat parhaat käytännöt:

Tyhjennä käyttöliittymä

Varmista, että valintaikkuna ja teksti ovat luettavissa ja sijoitettu oikein näytölle. Käytä asianmukaisia ​​fontteja, värejä ja kokoja, jotta tekstistä on helppo lukea.

Johdonmukainen hahmoääni

Säilytä johdonmukaisuus hahmojen puhetavassa ja heidän käyttämänsä sävyssä koko dialogin ajan. Tämä auttaa luomaan uskottavia ja mukaansatempaavia keskusteluja.

Relevanssi pelaamisen kannalta

Varmista, että dialogi myötävaikuttaa mielekkäästi pelin tarinaan tai tarjoaa pelaajalle asiaankuuluvaa tietoa. Vältä liiallisia tai asiaankuulumattomia keskusteluja, jotka voivat häiritä pelin kulkua.

Testaus ja iterointi

Playtestaa dialogijärjestelmääsi perusteellisesti tunnistaaksesi mahdolliset ongelmat tai epäjohdonmukaisuudet. Toista dialogiasi pelaajien palautteen perusteella parantaaksesi keskustelujen yleistä laatua ja vaikutusta.

Tee peleistä hauskempaa dialogijärjestelmällä

Dialogijärjestelmän lisääminen peleihin Pythonin Arcade-kirjaston avulla voi parantaa pelaajan kokemusta huomattavasti. Se mahdollistaa interaktiiviset keskustelut, tarinankerronta ja hahmojen kehittämisen, mikä tekee peleistäsi mukaansatempaavampia, kiinnostavampia ja hauskempia pelata.