Nodi e Scene

Su Panoramica dei concetti chiave di Godot, abbiamo visto che un gioco su Godot è un albero di scene e che ogni scena è un albero di nodi. In questa lezione, approfondiamo su di loro. Inoltre creerete la vostra prima scena.

Nodi

I nodi sono i blocchi fondamentali del tuo gioco. Sono come ingredienti in una ricetta. Ci sono dozzine di tipi che possono mostrare un’immagine, riprodurre un suono, rappresentare una camera, e molto altro.

../../_images/nodes_and_scenes_nodes.webp

Tutti i nodi hanno le seguenti caratteristiche:

  • Un nome.

  • Proprietà modificabili.

  • Ricevono callback (chiamate alla funzione) per aggiornarsi a ogni frame.

  • È possibile estenderle con nuove proprietà e funzioni.

  • Puoi aggiungerli a un altro nodo come figlio.

L’ultima caratteristica è importante. Insieme, i nodi formano un albero, che è una potente funzionalità per organizzare progetti. Siccome diversi nodi hanno diverse funzioni, combinarli produce comportamenti più complessi. Come abbiamo visto prima, puoi costruire un personaggio giocabile seguito dalla camera usando un nodo CharacterBody2D, un nodo Sprite2D, un nodo Camera2D e un nodo CollisionShape2D.

../../_images/nodes_and_scenes_character_nodes.webp

Scene

Quando organizzi nodi in un albero, come il nostro personaggio, possiamo chiamare questa formazione una scena. Una volta salvata, la scena si presenta come un nuovo nodo nell’editor, dove possiamo aggiungerlo come figlio di un nodo esistente. In questo caso, l’istanza della scena appare come nodo singolo con interni nascosti.

Le scene di consentono di strutturare il codice del gioco in qualunque modo tu voglia. Puoi comporre nodi per creare nodi personalizzati e complessi, come un personaggio di gioco che si muove e salta, una barra della vita, una cesta con cui puoi interagire, e molto altro.

../../_images/nodes_and_scenes_3d_scene_example.png

Fondamentalmente, l'editor di Godot é un editor di scene. Contiene molti strumenti per modificare scene 2D e 3D, così come interfacce utente. Un progetto Godot può contenere tutte le scene di cui hai bisogno. Il motore ne necessita solo di una come scena principale della tua applicazione. Questa è la scena che Godot caricherà per prima quando tu o un giocatore avviate il gioco.

Oltre a comportarsi come nodi, le scene hanno i seguenti attributi:

  1. Hanno sempre un nodo radice, come il "Player" nel nostro esempio.

  2. Puoi salvarle sul tuo disco locale e caricarli in seguito.

  3. Puoi creare tutte le istanze di una scena che desideri. Potresti avere cinque o dieci personaggi nel tuo gioco, creati dalla tua scena Character.

Creare la tua prima scena

Creiamo la nostra prima scena con un singolo nodo. Per fare ciò, avrai bisogno di creare un nuovo progetto. Dopo aver aperto il progetto, dovresti vedere un editor vuoto.

../../_images/nodes_and_scenes_01_empty_editor.webp

In una scena vuota (senza il nodo radice), il pannello Scena mostra diverse opzioni per aggiungere rapidamente un nodo radice alla scena. "Scena 2D" aggiunge un nodo Node2D, "Scena 3D" aggiunge un nodo Node3D, "Interfaccia utente" aggiunge un nodo Control. Questi scelte sono per comodità; non sono obbligatorie. "Altro nodo" ti consente di scegliere qualsiasi nodo come nodo radice. In una scena vuota, "Altro nodo" equivale al pulsante "Aggiungi nodo figlio" in alto a sinistra del pannello Scena, che di solito aggiunge un nuovo nodo come figlio del nodo attualmente selezionato.

Aggiungeremo un singolo nodo Label alla nostra scena. La sua funzione è quella di disegnare testo sullo schermo.

Premi il pulsante "Aggiungi nodo figlio" o "Altro nodo" per creare un nodo radice.

../../_images/nodes_and_scenes_02_scene_dock.webp

Si apre la finestra di dialogo Crea un nodo, che mostra il lungo elenco di nodi disponibili.

../../_images/nodes_and_scenes_03_create_node_window.webp

Seleziona il nodo Label. Puoi scrivere il suo nome per filtrarlo sulla lista.

../../_images/nodes_and_scenes_04_create_label_window.webp

Clicca sul nodo Label per selezionarlo e clicca il pulsante Crea nella parte inferiore della finestra.

../../_images/nodes_and_scenes_05_editor_with_label.webp

Molto accade quando aggiungi il primo nodo di una scena. La scena cambia dal piano di lavoro 2D perché Label è un nodo di tipo 2D. Il Label appare, selezionato, nel bordo in alto a sinistra del Viewport. Il nodo appare nel riquadro Scene sulla sinistra, e le proprietà del nodo appaiono nel pannello Inspector sulla destra.

Modifica delle proprietà di un nodo

Il passaggio successivo consiste nel modificare la proprietà "Testo" del Label. Cambiamola in "Hello World".

Muoviti sul riquadro Inspector sulla destra del Viewport. Clicca dentro il campo sotto la proprietà Testo e scrivi "Hello World".

../../_images/nodes_and_scenes_06_label_text.webp

Mentre digiti, vedrai il testo che si disegna nella viewport.

Vedi anche

Puoi modificare qualsiasi proprietà elencata nell'Ispettore come abbiamo fatto con il Testo. Per un riferimento completo del pannello d'Ispettore, vedi L'Ispettore.

Puoi muovere il tuo nodo Label nel Viewport selezionando lo strumento muovi nella barra degli strumenti.

../../_images/nodes_and_scenes_07_move_tool.webp

Con la Label selezionata, premi e trascina ovunque nel Viewport per muoverlo al centro della vista delimitata dal rettangolo.

../../_images/nodes_and_scenes_08_hello_world_text.webp

Esecuzione della scena

Everything's ready to run the scene! Press the Run Current Scene button in the top-right of the screen or press F6 (Cmd + R on macOS).

../../_images/nodes_and_scenes_09_play_scene_button.webp

Un popup ti invita a salvare la scena, il che è necessario per avviarla. Clicca il pulsante Salva nel browser di file per salvarla con il nome label.tscn.

../../_images/nodes_and_scenes_10_save_scene_as.webp

Nota

La finestra di dialogo Salva scena con nome, come le altre finestre di dialogo dei file nell'editor, consente di salvare i file solo all'interno del progetto. Il percorso res:// in cima alla finestra rappresenta la directory principale del progetto e sta per "percorso delle risorse". Per ulteriori informazioni sui percorsi dei file in Godot, vedere File system.

L'applicazione si dovrebbe aprire in una nuova finestra e visualizzare il testo "Hello World".

../../_images/nodes_and_scenes_11_final_result.webp

Chiudi la finestra o premi F8 (Cmd + . su macOS) per uscire dalla scena in esecuzione.

Setting the main scene

To run our test scene, we used the Run Current Scene button. Another button next to it, Run Project, allows you to set and run the project's main scene. You can also press F5 (Cmd + B on macOS) to do so.

../../_images/nodes_and_scenes_12_play_button.webp

Nota

Running the project's main scene is distinct from running the current scene. If you encounter unexpected behavior, check to ensure you are running the correct scene.

Apparirà una finestra popup che ti inviterà a selezionare la scena principale.

../../_images/nodes_and_scenes_13_main_scene_popup.webp

Clicca sul pulsante Seleziona e, nella finestra di dialogo di file che appare, fai doppio clic su label.tscn.

../../_images/nodes_and_scenes_14_select_main_scene.webp

La dimostrazione si dovrebbe eseguita di nuovo. Andando avanti, ogni volta che eseguirai il progetto, Godot utilizzerà questa scena come punto di partenza.

Nota

L'editor salva il percorso della scena principale in un file project.godot nella cartella del progetto. Sebbene sia possibile modificare direttamente questo file di testo per cambiare le impostazioni del progetto, si può anche fare ciò dalla finestra "Progetto -> Impostazioni del progetto". Per maggiori informazioni, consulta Impostazioni del progetto.

Nella prossima parte, discuteremo un altro concetto chiave nei giochi e in Godot: la creazione di istanze di una scena.