Suteikite savo personažams šiek tiek asmeniškumo ir fono naudodami įspūdingą dialogo sistemą.
Kuriant žaidimą įtraukiantis žaidimas ir žavus pasakojimas yra labai svarbūs norint sukurti nepamirštamą patirtį. Vienas galingas įrankis, galintis padėti tai pasiekti, yra dialogo sistema.
Naudodami gerai įdiegtą dialogo sistemą, personažai gali bendrauti, dalytis informacija ir bendrauti su žaidėju, todėl jūsų žaidimas tampa gilesnis ir panardinamas.
„Godot“ žaidimo nustatymas
Pradėkite kurdami savo žaidimo pagrindą. Šiame pavyzdyje nustatykite paprastą 2D aplinką su valdomu simboliu, kuris gali judėti rodyklių klavišais.
Šiame straipsnyje naudojamas kodas pateikiamas čia GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.
Pradėkite kurdami naują sceną savo žaidėjo personažui. Šioje scenoje pridėkite reikiamus komponentus. Sukurti CharacterBody2D mazgas, vaizduojantis žaidėjo personažo kūną. Pritvirtinkite a CollisionShape2D stačiakampio formos, kad apibrėžtų žaidėjo susidūrimo sritį.
Dabar pridėti veikėjo judėjimą ir sąveika su platformomis naudojant GDScript. Pakeiskite numatytąjį CharacterBody2D mazgo scenarijų šiuo kodu:
extends CharacterBody2D
var speed = 300
func _physics_process(delta):
var input_dir = Vector2.ZEROif Input.is_action_pressed("ui_left"):
input_dir.x -= 1if Input.is_action_pressed("ui_right"):
input_dir.x += 1if Input.is_action_pressed("ui_up"):
input_dir.y -= 1if Input.is_action_pressed("ui_down"):
input_dir.y += 1
velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)
Šis scenarijus leidžia jūsų veikėjui judėti kairėn, dešinėn, aukštyn ir žemyn, remiantis rodyklės klavišų įvestimis. The judėti_ir_susidurti funkcija užtikrina, kad veikėjas sąveikautų su platformomis ir reaguotų į susidūrimus.
Dialogo lango pridėjimas
Dabar galite pradėti kurti dialogo sistemą. Pirmas žingsnis yra pridėti dialogo langą, kuriame bus rodomas tekstas, kai jūsų veikėjas sąveikauja su konkrečiais objektais ar NPC.
Jūsų CharacterBody2D scenarijų, įveskite dar kelis kintamuosius, skirtus dialogo langui ir jo turiniui tvarkyti:
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 dialogo_langas bus atsakingas už dialogo teksto rodymą, o uždaryti_mygtukas leis žaidėjams prireikus uždaryti dialogo langą.
Viduje _paruošta funkciją, sukurkite ir inicijuokite dialogo langą:
func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)
Rodomas dialogo tekstas
Dabar galite sutelkti dėmesį į teksto rodymą dialogo lange. Galite nustatyti, kad tekstas apimtų daugiau nei vieną eilutę ir juo slinktų, kad vienu metu būtų rodoma viena teksto eilutė.
Pakeiskite savo _fizikos_procesas funkcija, skirta tvarkyti dialogo eilučių rodymą:
if line_timer > 0:
line_timer -= delta
elif current_line < dialogue_lines.size():
show_next_dialogue_line()
Šis kodo segmentas patikrina, ar linijos_laikmatis yra didesnis nei 0. Jei taip, laikmatis sumažinamas delta reikšme. Jei laikmatis neaktyvus ir yra daugiau dialogo eilučių, jis iškviečia Rodyti_next_dialogue_line funkcija.
Įgyvendinti Rodyti_next_dialogue_line veikia taip:
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
Ši funkcija atnaujina dialogo lange esantį tekstą esama dialogo eilute ir padidina dabartinė_eilutė indeksas. The linijos_laikmatis užtikrina, kad kiekviena eilutė būtų rodoma trumpą laiką prieš pereinant į kitą eilutę.
Uždaryti mygtuko pridėjimas
Dabar galite suteikti žaidėjams galimybę uždaryti dialogo langą ir tęsti žaidimą. Atlikite tai su uždarymo mygtuku, kurį paspaudus paslepia dialogo langą ir žaidėjas gali tęsti kelionę.
Pirma, modifikuokite _paruošta funkcija sukurti uždarymo mygtuką ir pridėti jo funkcionalumą.
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)
Šis kodas sukuria egzempliorių Mygtukas klasė ir pritaikyti jos išvaizdą bei padėtį. Jis taip pat jungia prispaustas signalas į _nuspaustas_uždaryti_mygtukas funkcija.
Dabar įgyvendinkite _nuspaustas_uždaryti_mygtukas funkcija. Naudodami šią funkciją nustatykite dialogo lango ir uždarymo mygtuko matomumą klaidinga. Tai veiksmingai paslepia dialogo sąsają nuo grotuvo.
Nepamirškite iš naujo nustatyti dabartinė_eilutė indeksas iki 0, siekiant užtikrinti, kad dialogas prasidėtų iš pradžių, kai kitą kartą žaidėjas pradeda pokalbį:
func _on_close_button_pressed():
dialogue_box.visible = false
close_button.visible = false
current_line = 0
Atlikę šiuos pakeitimus, žaidėjai galės užmegzti dialogą ir uždaryti dialogo langą, kai bus pasirengę toliau tyrinėti žaidimų pasaulį arba su juo bendrauti.
Geriausia jūsų dialogo sistemos praktika
Toliau kurdami ir tobulindami savo dialogo sistemą, nepamirškite toliau pateiktos geriausios praktikos padės užtikrinti, kad jūsų sistema padidins žaidimo pasakojimą ir žaidėjų įtraukimą apimtis.
Nuoseklumas yra raktas
Visoje dialogo sistemoje išlaikykite nuoseklų toną, rašymo stilių ir žodyną. Nuoseklumas padeda žaidėjams susisiekti su personažais ir žaidimų pasauliu, sukuriant vientisą ir įtraukiantį potyrį.
Amatų veikėjų balsai
Kiekvienas veikėjas turi turėti skirtingą balsą ir asmenybę, atsispindinčią jų dialoguose. Rašydami eilutes atsižvelkite į jų kilmę, motyvus ir emocijas.
Šis skirtumas suteikia jūsų personažams gilumo ir daro sąveiką įsimintinesnę. Galite lengvai pridėti skirtingus garsus skirtingiems Godot personažams.
Prasmingi pasirinkimai
Sukurkite dialogo pasirinkimus, kurie turi reikšmingų pasekmių. Pasirinkimai, turintys įtakos žaidimo pasakojimui, santykiams ar net žaidimo mechanikai, skatina žaidėjus įsitraukti į dialogo sistemą ir emociškai investuoti į savo sprendimus.
Testavimas ir iteracija
Kruopščiai išbandykite dialogų sekas, kad pastebėtumėte rašybos klaidas, gramatines klaidas ar ritmo problemas. Įsitraukite į žaidimo testavimą, kad surinktumėte žaidėjų atsiliepimus ir atliktumėte reikiamus pakeitimus, kad dialogo sistema veiktų sklandžiai ir pagerintų bendrą žaidimo patirtį.
UI nuoseklumas
Užtikrinkite, kad dialogo sistemos dizainas ir pateikimas atitiktų bendrą Jūsų žaidimo vartotojo sąsajos (UI) dizainas. Nuosekli vartotojo sąsajos elementai, šriftai ir spalvos sukuria darnią vizualinę patirtį, kuri prisideda prie žaidimo įtraukimo.
Laikydamiesi šios geriausios praktikos, galite sukurti dialogo sistemą, kuri ne tik pagerins jūsų žaidimo pasakojimą, bet ir sukurs žaidėjams įsimintiną ir įtraukiantį potyrį.
Padidinkite savo Godot žaidimus su dialogo sistemomis
Dialogo sistemos įtraukimas į savo Godot žaidimus gali pagerinti žaidėjų įsitraukimą ir pakeisti pasakojimus. Leidžiant personažams bendrauti, reikšti emocijas ir reaguoti į žaidėjo sprendimus, sukuriate labiau įtraukiantį ir interaktyvesnį žaidimų pasaulį.
Naudodami patogią Godot aplinką ir GDScript galią, turite įrankius kurti patrauklios dialogo sistemos, kurios įtraukia žaidėjus į jūsų pasakojimą ir pagerina jų bendrą žaidimą patirtį.