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.
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 = Tottadefon_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 + 25jos 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 = indeksidefdraw_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.