Dodaj trochę osobowości i tła swoim postaciom dzięki mocnemu systemowi dialogów.
W tworzeniu gier wciągająca rozgrywka i wciągająca opowieść są kluczem do tworzenia niezapomnianych wrażeń. Potężnym narzędziem, które może Ci w tym pomóc, jest system dialogu.
Dzięki dobrze zaimplementowanemu systemowi dialogów postacie mogą komunikować się, dzielić się informacjami i wchodzić w interakcję z graczem, dodając głębi i zanurzenia w grze.
Konfigurowanie gry Godot
Zacznij od stworzenia podstaw swojej gry. W tym przykładzie skonfiguruj proste środowisko 2D z sterowaną postacią, którą można poruszać się za pomocą klawiszy strzałek.
Kod użyty w tym artykule jest dostępny w this Repozytorium GitHuba i jest darmowy do użytku na licencji MIT.
Rozpocznij od stworzenia nowej sceny dla swojej postaci gracza. Wewnątrz tej sceny dodaj niezbędne komponenty. Stwórz PostaćCiało2D węzeł reprezentujący ciało postaci gracza. Dołącz a Kształt kolizji2D o prostokątnym kształcie wyznaczającym obszar kolizji gracza.
Teraz,
dodaj ruch postaci oraz interakcja z platformami wykorzystującymi GDScript. Zastąp domyślny skrypt węzła CharacterBody2D następującym kodem: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)
Skrypt ten umożliwia Twojej postaci poruszanie się w lewo, w prawo, w górę i w dół w oparciu o klawisze strzałek. The przesuń_i_zderz Funkcja zapewnia, że postać wchodzi w interakcję z platformami i reaguje na kolizje.
Dodanie okna dialogowego
Teraz możesz przystąpić do tworzenia systemu dialogowego. Pierwszym krokiem jest dodanie okna dialogowego, w którym będzie wyświetlany tekst, gdy Twoja postać wejdzie w interakcję z określonymi obiektami lub NPC-ami.
W Twoim PostaćCiało2D skrypt, wprowadź jeszcze kilka zmiennych do obsługi okna dialogowego i jego zawartości:
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 będzie odpowiedzialny za wyświetlanie tekstu dialogu, natomiast plik przycisk_zamknij pozwoli graczom zamknąć okno dialogowe, jeśli zajdzie taka potrzeba.
w _gotowy funkcji, utwórz i zainicjuj okno dialogowe:
func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)
Wyświetlanie tekstu dialogu
Teraz możesz skupić się na wyświetlaniu tekstu w oknie dialogowym. Możesz rozciągnąć tekst na więcej niż jedną linię i przewijać go, odsłaniając po jednym wierszu tekstu na raz.
Zmodyfikuj swoje _proces_fizyczny funkcja obsługująca wyświetlanie linii dialogowych:
if line_timer > 0:
line_timer -= delta
elif current_line < dialogue_lines.size():
show_next_dialogue_line()
Ten segment kodu sprawdza, czy licznik_liniowy jest większa niż 0. Jeśli tak, zmniejsza licznik czasu o wartość delta. Jeśli licznik czasu nie jest aktywny i jest więcej linii dialogowych do wyświetlenia, wywołuje funkcję show_next_dialogue_line funkcjonować.
Wdrażaj show_next_dialogue_line działać w następujący sposób:
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 funkcja aktualizuje tekst w oknie dialogowym zgodnie z bieżącą linią dialogową i zwiększa bieżąca_linia indeks. The licznik_liniowy zapewnia, że każda linia będzie wyświetlana przez krótki czas przed przejściem do następnej linii.
Dodanie przycisku zamykania
Teraz możesz dać graczom możliwość zamknięcia okna dialogowego i kontynuowania gry. Zrób to za pomocą przycisku zamykania, który po naciśnięciu ukrywa okno dialogowe i pozwala graczowi wznowić podróż.
Najpierw zmodyfikuj plik _gotowy funkcję tworzenia przycisku zamykania i dołączania jego funkcjonalności.
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)
Ten kod tworzy instancję Przycisk klasę i dostosowuje swój wygląd i położenie. Łączy także prasowany sygnał do _on_close_button_wciśnięty funkcjonować.
Teraz zaimplementuj _on_close_button_wciśnięty funkcjonować. W tej funkcji ustaw widoczność zarówno okna dialogowego, jak i przycisku zamykania na FAŁSZ. To skutecznie ukrywa interfejs dialogowy przed graczem.
Pamiętaj o zresetowaniu bieżąca_linia indeks na 0, aby mieć pewność, że dialog zacznie się od początku przy następnym rozpoczęciu rozmowy przez gracza:
func _on_close_button_pressed():
dialogue_box.visible = false
close_button.visible = false
current_line = 0
Dzięki tym zmianom gracze będą mogli nawiązać dialog i zamknąć okno dialogowe, gdy będą gotowi na dalszą eksplorację lub interakcję ze światem gry.
Najlepsze praktyki dotyczące Twojego systemu dialogu
Kontynuując rozwój i udoskonalanie swojego systemu dialogu, pamiętaj o poniższych najlepszych praktykach pomoże zapewnić, że Twój system w pełni ulepszy narrację gry i zaangażowanie graczy zakres.
Spójność jest kluczem
Utrzymuj spójny ton, styl pisania i słownictwo w całym systemie dialogowym. Spójność pomaga graczom łączyć się z postaciami i światem gry, tworząc płynne i wciągające wrażenia.
Twórz głosy postaci
Każda postać powinna mieć odrębny głos i osobowość odzwierciedlone w dialogach. Pisząc swoje kwestie, weź pod uwagę ich pochodzenie, motywacje i emocje.
To zróżnicowanie dodaje głębi twoim postaciom i sprawia, że interakcje są bardziej zapadające w pamięć. Możesz z łatwością dodaj różne dźwięki dla różnych postaci Godota.
Znaczące wybory
Projektuj wybory dialogowe, które mają znaczące konsekwencje. Wybory, które wpływają na narrację gry, relacje, a nawet mechanikę rozgrywki, zachęcają graczy do zaangażowania się w system dialogu i emocjonalnego inwestowania w swoje decyzje.
Testowanie i iteracja
Dokładnie przetestuj sekwencje dialogów, aby wykryć literówki, błędy gramatyczne lub problemy z tempem. Weź udział w testach rozgrywki, aby zebrać opinie od graczy i wprowadzić niezbędne zmiany, aby zapewnić płynne działanie systemu dialogów i poprawę ogólnych wrażeń z rozgrywki.
Spójność interfejsu użytkownika
Upewnij się, że projekt i prezentacja systemu dialogowego odpowiadają całości projekt interfejsu użytkownika (UI) Twojej gry. Spójne elementy interfejsu użytkownika, czcionki i kolory tworzą spójne wrażenia wizualne, które przyczyniają się do zanurzenia się w grze.
Postępując zgodnie z tymi najlepszymi praktykami, możesz stworzyć system dialogów, który nie tylko ulepszy narrację gry, ale także zapewni graczom niezapomniane i wciągające wrażenia.
Podnieś poziom gier Godot dzięki systemom dialogu
Włączenie systemu dialogów do gier Godot może zwiększyć zaangażowanie graczy i zrewolucjonizować sposób opowiadania historii. Umożliwiając postaciom komunikację, wyrażanie emocji i reagowanie na decyzje gracza, tworzysz bardziej wciągający i interaktywny świat gry.
Dzięki przyjaznemu dla użytkownika środowisku Godota i mocy GDScript masz narzędzia do tworzenia fascynujące systemy dialogów, które wciągają graczy w Twoją narrację i poprawiają ogólną rozgrywkę doświadczenie.