Svojim likom dodajte nekaj osebnosti in ozadja z prodornim sistemom dialogov.

Pri razvoju iger sta zanimivo igranje in očarljivo pripovedovanje ključnega pomena za ustvarjanje nepozabnih izkušenj. Eno močno orodje, ki vam lahko pomaga doseči to, je sistem dialoga.

Z dobro implementiranim sistemom dialoga lahko liki komunicirajo, izmenjujejo informacije in komunicirajo z igralcem, kar vaši igri doda globino in poglobitev.

Nastavitev igre Godot

Začnite tako, da ustvarite temelj svoje igre. Za ta primer nastavite preprosto 2D okolje z likom, ki ga je mogoče nadzorovati in se lahko premika s puščičnimi tipkami.

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

Začnite z ustvarjanjem novega prizora za svojega lika igralca. Znotraj tega prizora dodajte potrebne komponente. Ustvariti CharacterBody2D vozlišče, ki predstavlja telo igralčevega lika. Priložite a CollisionShape2D s pravokotno obliko, ki določa igralčevo območje trka.

zdaj,

dodajte gibanje lika in interakcijo s platformami, ki uporabljajo GDScript. Zamenjajte privzeti skript vozlišča CharacterBody2D z naslednjo kodo:

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO

if Input.is_action_pressed("ui_left"):
input_dir.x -= 1

if Input.is_action_pressed("ui_right"):
input_dir.x += 1

if Input.is_action_pressed("ui_up"):
input_dir.y -= 1

if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

Ta skript omogoča, da se vaš lik premika levo, desno, gor in dol glede na vnose puščičnih tipk. The premikanje_in_trčenje funkcija zagotavlja, da lik komunicira s platformami in se odziva na trke.

Dodajanje pogovornega okna

Zdaj lahko začnete ustvarjati sistem dialoga. Prvi korak je dodati pogovorno okno, ki bo prikazalo besedilo, ko vaš lik komunicira z določenimi predmeti ali NPC-ji.

V vašem CharacterBody2D skripta, uvedite še nekaj spremenljivk za upravljanje pogovornega okna in njegove vsebine:

var dialogue_box: Label
var close_button: Button
var dialogue_lines: Array = ["Hello, adventurer!", "Welcome to our village."]

var current_line: int = 0
var line_timer: float = 0

The dialog_box bo odgovoren za prikaz besedila dialoga, medtem ko bo close_button omogoča igralcem, da zaprejo pogovorno okno, ko je to potrebno.

V _pripravljen ustvarite in inicializirajte pogovorno okno:

func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)

Prikaz besedila dialoga

Zdaj se lahko osredotočite na prikazovanje besedila v pogovornem oknu. Lahko naredite, da besedilo obsega več kot eno vrstico in se pomikate po njem, tako da prikažete eno vrstico besedila naenkrat.

Spremenite svoje _fizikalni_proces funkcija za upravljanje prikaza dialogov:

if line_timer > 0:
line_timer -= delta
elif current_line < dialogue_lines.size():
show_next_dialogue_line()

Ta segment kode preverja, ali je line_timer je večji od 0. Če je, zmanjša časovnik za vrednost delta. Če časovnik ni aktiven in je prikazanih več pogovornih vrstic, pokliče pokaži_naslednjo_dialoško_vrstico funkcijo.

Izvajati pokaži_naslednjo_dialoško_vrstico deluje kot sledi:

func show_next_dialogue_line():
dialogue_box.text = dialogue_lines[current_line]
current_line += 1

# Display each line for 3 seconds
line_timer = 3.0

Ta funkcija posodobi besedilo v pogovornem oknu s trenutno vrstico pogovornega okna in poveča trenutna_vrstica kazalo. The line_timer zagotavlja, da je vsaka vrstica prikazana za kratek čas, preden napreduje v naslednjo vrstico.

Dodajanje gumba za zapiranje

Zdaj lahko igralcem omogočite, da zaprejo pogovorno okno in nadaljujejo z igro. To storite z gumbom za zapiranje, ki, ko ga pritisne, skrije pogovorno okno in omogoči igralcu, da nadaljuje svoje potovanje.

Najprej spremenite _pripravljen funkcijo za ustvarjanje gumba za zapiranje in pritrditev njegove funkcije.

func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)

close_button = Button.new()
close_button.text = "Close"
close_button.position = Vector2(50, 30)
close_button.visible = false
close_button.pressed.connect(_on_close_button_pressed)
add_child(close_button)

Ta koda ustvari primerek Gumb razreda ter prilagodi njegov videz in položaj. Povezuje tudi stisnjen signal za _on_close_button_pressed funkcijo.

Zdaj izvajajte _on_close_button_pressed funkcijo. V tej funkciji nastavite vidnost pogovornega okna in gumba za zapiranje na lažno. To učinkovito skrije vmesnik za dialog pred predvajalnikom.

Ne pozabite ponastaviti trenutna_vrstica indeks na 0, da zagotovite, da se dialog začne od začetka, ko igralec naslednjič začne pogovor:

func _on_close_button_pressed():
dialogue_box.visible = false
close_button.visible = false
current_line = 0

S temi spremembami se bodo igralci lahko vključili v dialog in zaprli pogovorno okno, ko bodo pripravljeni nadaljevati raziskovanje ali interakcijo s svetom igre.

Najboljše prakse za vaš sistem dialoga

Ko boste še naprej razvijali in izpopolnjevali svoj sistem dialoga, upoštevajte naslednje najboljše prakse bo pomagal zagotoviti, da bo vaš sistem v največji možni meri izboljšal pripovedovanje zgodbe in angažiranost igralcev obseg.

Doslednost je ključna

Ohranite dosleden ton, stil pisanja in besedišče v celotnem sistemu dialoga. Doslednost pomaga igralcem pri povezovanju z liki in svetom igre ter ustvarja brezhibno in poglobljeno izkušnjo.

Craft Character Voices

Vsak lik mora imeti poseben glas in osebnost, ki se odražata v njegovih dialogih. Pri pisanju njihovih vrstic upoštevajte njihovo ozadje, motivacijo in čustva.

Ta razlika doda globino vašim likom in naredi interakcije bolj nepozabne. Z lahkoto lahko dodajte različne zvoke za različne like v Godotu.

Smiselne izbire

Oblikujte izbire dialoga, ki imajo pomembne posledice. Izbire, ki vplivajo na pripoved igre, odnose ali celo mehaniko igranja, spodbujajo igralce, da se vključijo v sistem dialoga in čustveno vlagajo v svoje odločitve.

Testiranje in ponovitev

Temeljito preizkusite svoja zaporedja dialogov, da odkrijete morebitne tipkarske napake, slovnične napake ali težave s tempom. Sodelujte v testiranju igranja, da zberete povratne informacije igralcev in izvedete potrebne prilagoditve, da zagotovite, da sistem dialoga teče gladko in izboljša celotno izkušnjo igranja.

Usklajenost uporabniškega vmesnika

Zagotovite, da se zasnova in predstavitev sistema dialoga ujemata s celoto oblikovanje uporabniškega vmesnika (UI) vaše igre. Dosledni elementi uporabniškega vmesnika, pisave in barve ustvarjajo povezano vizualno izkušnjo, ki prispeva k poglobitvi v igro.

Z upoštevanjem teh najboljših praks lahko ustvarite sistem dialoga, ki ne le izboljša pripoved vaše igre, ampak tudi ustvari nepozabno in poglobljeno izkušnjo za igralce.

Izboljšajte svoje igre Godot s sistemi dialoga

Vključitev sistema dialogov v vaše igre Godot lahko izboljša sodelovanje igralcev in spremeni vaše pripovedovanje zgodb. Če likom omogočite komunikacijo, izražanje čustev in odziv na odločitve igralca, ustvarite bolj poglobljen in interaktiven svet igre.

Z Godotovim uporabniku prijaznim okoljem in močjo GDScript imate orodja za ustvarjanje prepričljive dialoge, ki pritegnejo igralce v vašo pripoved in izboljšajo njihovo celotno igro izkušnje.