Vytvoření systému dialogu v Godot s GDScript

Při vývoji her jsou poutavé hry a podmanivé vyprávění klíčové pro vytváření nezapomenutelných zážitků. Jedním mocným nástrojem, který vám toho může pomoci dosáhnout, je systém dialogů.

Díky dobře implementovanému systému dialogů mohou postavy komunikovat, sdílet informace a komunikovat s hráčem, což vaší hře dodává hloubku a pohlcení.

Nastavení hry Godot

Začněte vytvořením základů vaší hry. Pro tento příklad nastavte jednoduché 2D prostředí s ovladatelnou postavou, která se může pohybovat pomocí kláves se šipkami.

Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.

Začněte vytvořením nové scény pro svou hráčskou postavu. Uvnitř této scény přidejte potřebné komponenty. Vytvořte uzel CharacterBody2D, který bude reprezentovat tělo postavy hráče. Připojte CollisionShape2D s obdélníkovým tvarem, abyste definovali oblast střetu hráče.

Nyní přidejte pohyb postav a interakci s platformami pomocí GDScript. Nahraďte výchozí skript uzlu CharacterBody2D následujícím kódem:

 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)

Tento skript umožňuje vaší postavě pohyb doleva, doprava, nahoru a dolů na základě vstupů pomocí šipek. Funkce move_and_collide zajišťuje interakci postavy s platformami a reakci na kolize.

  Top Call Center 📞Automatizační software pro efektivní týmovou interakci

Přidání dialogového okna

Nyní můžete začít vytvářet systém dialogů. Prvním krokem je přidat dialogové okno, které zobrazí text, když vaše postava interaguje s konkrétními objekty nebo NPC.

Ve skriptu CharacterBody2D zaveďte několik dalších proměnných pro práci s dialogovým oknem a jeho obsahem:

 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

Dialogové okno bude zodpovídat za zobrazení textu dialogu, zatímco tlačítko close_button umožní hráčům v případě potřeby dialogové okno zavřít.

Ve funkci _ready vytvořte a inicializujte dialogové okno:

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

Zobrazení textu dialogu

Nyní se můžete zaměřit na zobrazení textu v dialogovém okně. Můžete nastavit, aby text zahrnoval více než jeden řádek a posouvat jej, přičemž odhaluje jeden řádek textu najednou.

Upravte svou funkci _physics_process tak, aby zvládala zobrazování dialogových řádků:

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

Tento segment kódu kontroluje, zda je line_timer větší než 0. Pokud ano, sníží časovač o hodnotu delta. Pokud časovač není aktivní a existuje více dialogových řádků k zobrazení, zavolá funkci show_next_dialogue_line.

Implementujte funkci show_next_dialogue_line následovně:

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

   
    line_timer = 3.0

Tato funkce aktualizuje text v dialogovém okně aktuálním dialogovým řádkem a zvyšuje index aktuálního řádku. Line_timer zajišťuje, že každý řádek je zobrazen na krátkou dobu před přechodem na další řádek.

  Jak odstranit všechny kontakty z iPhone 5 bez iCloud

Přidání tlačítka Zavřít

Nyní můžete dát hráčům možnost zavřít dialogové okno a pokračovat ve hře. Udělejte to pomocí tlačítka pro zavření, které po stisknutí skryje dialogové okno a umožní hráči pokračovat v cestě.

Nejprve upravte funkci _ready, abyste vytvořili tlačítko pro zavření a připojte jeho funkci.

 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)

Tento kód vytvoří instanci třídy Button a přizpůsobí její vzhled a pozici. Také spojuje stisknutý signál s funkcí _on_close_button_pressed.

Nyní implementujte funkci _on_close_button_pressed. V této funkci nastavte viditelnost dialogového okna i tlačítka zavřít na hodnotu false. To účinně skryje dialogové rozhraní před přehrávačem.

Nezapomeňte resetovat index current_line na 0, abyste zajistili, že dialog začne od začátku, až hráč příště zahájí konverzaci:

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

Díky těmto změnám se hráči budou moci zapojit do dialogu a zavřít dialogové okno, když budou připraveni pokračovat v prozkoumávání nebo interakci s herním světem.

Nejlepší postupy pro váš systém dialogu

Jak budete pokračovat ve vývoji a zdokonalování svého dialogového systému, budete mít na paměti následující osvědčené postupy, které vám pomohou zajistit, že váš systém vylepší příběh vaší hry a zapojení hráčů do maximální míry.

Konzistence je klíčová

Udržujte konzistentní tón, styl psaní a slovní zásobu v celém systému dialogů. Konzistence pomáhá hráčům spojit se s postavami a herním světem a vytváří tak bezproblémový a pohlcující zážitek.

  Definujte svůj obchodní cíl pomocí těchto 6 šablon mapování strategie

Vytvářejte hlasy postav

Každá postava by měla mít odlišný hlas a osobnost odrážející se v jejích dialozích. Při psaní řádků zvažte jejich pozadí, motivaci a emoce.

Toto odlišení dodává vašim postavám hloubku a dělá interakce lépe zapamatovatelné. V Godotovi můžete snadno přidat různé zvuky pro různé postavy.

Smysluplné volby

Navrhněte volby dialogu, které mají smysluplné důsledky. Volby, které ovlivňují příběh hry, vztahy nebo dokonce herní mechanismy, povzbuzují hráče, aby se zapojili do systému dialogů a emocionálně investovali do svých rozhodnutí.

Testování a iterace

Důkladně otestujte své sekvence dialogů, abyste zachytili případné překlepy, gramatické chyby nebo problémy se tempem. Zapojte se do testování hry, abyste získali zpětnou vazbu od hráčů a proveďte nezbytné úpravy, abyste zajistili, že dialogový systém bude plynulý a zlepší celkový herní zážitek.

Konzistence uživatelského rozhraní

Zajistěte, aby design a prezentace systému dialogů odpovídaly celkovému designu uživatelského rozhraní (UI) vaší hry. Konzistentní prvky uživatelského rozhraní, písma a barvy vytvářejí soudržný vizuální zážitek, který přispívá k ponoření do hry.

Dodržováním těchto osvědčených postupů můžete vytvořit systém dialogů, který nejen vylepší vyprávění vaší hry, ale také vytvoří pro hráče nezapomenutelný a pohlcující zážitek.

Povýšení vašich Godotových her pomocí dialogových systémů

Začlenění dialogového systému do vašich her Godot může zlepšit zapojení hráčů a revoluci ve vyprávění. Tím, že postavám umožníte komunikovat, vyjadřovat emoce a reagovat na rozhodnutí hráčů, vytvoříte působivější a interaktivnější herní svět.

S uživatelsky přívětivým prostředím Godot a silou GDScript máte nástroje k vytvoření působivých dialogových systémů, které vtáhnou hráče do vašeho příběhu a vylepší jejich celkový herní zážitek.