Nodos y Escenas

En Breve introducción de los conceptos clave de Godot, vimos que un juego de Godot es un árbol de escenas y que cada escena es un árbol de nodos. En esta lección, explicamos un poco más sobre ellos. También crearás tu primera escena.

Nodos

Los nodos son los bloques de construcción fundamentales de tu juego. Son como los ingredientes de una receta. Hay docenas de tipos que pueden mostrar una imagen, reproducir un sonido, representar una cámara y mucho más.

../../_images/nodes_and_scenes_nodes.png

Todos los nodos tienen las siguientes características:

  • Un nombre.

  • Propiedades editables.

  • Ellos reciben callbacks para actualizar cada fotograma.

  • Puedes extenderlos con nuevas propiedades y funciones.

  • Puedes agregarlos a otro nodo como un hijo.

El último atributo es clave. Juntos, los nodos forman un árbol, que es una característica poderosa para organizar proyectos. Dado que diferentes nodos tienen diferentes funciones, combinarlos produce un comportamiento más complejo. Como vimos antes, puedes crear un personaje jugable que la cámara siga usando un nodo de cuerpo cinemático llamado "Character", un nodo de sprite, un nodo de cámara y un nodo de forma de colisión.

../../_images/nodes_and_scenes_character_nodes.png

Escenas

Cuando organiza los nodos en un árbol, como nuestro personaje, llamamos a esta construcción una escena. Una vez guardadas, las escenas funcionan como nuevos tipos de nodos en el editor, donde puede agregarlos como elementos secundarios de un nodo existente. En ese caso, la instancia de la escena aparece como un solo nodo con sus partes internas ocultas.

Las escenas te permiten estructurar el código de tu juego como quieras. Puedes componer nodos para crear tipos de nodos personalizados y complejos, como un personaje de juego que corre y salta, una barra de vida, un cofre con el que puedes interactuar y más.

../../_images/nodes_and_scenes_3d_scene_example.png

El editor de Godot es esencialmente un editor de escenas. Tiene muchas herramientas para editar escenas 2D y 3D, así como interfaces de usuario. Un proyecto de Godot puede contener tantas de estas escenas como necesites. El motor solo requiere una como escena principal de su aplicación. Esta es la escena que Godot cargará primero cuando tú o un jugador ejecuten el juego.

Además de actuar como nodos, las escenas tienen los siguientes atributos:

  1. Siempre tienen un nodo raíz, como el "Character" en nuestro ejemplo.

  2. Puede guardarlos en su disco duro y cargarlos más tarde.

  3. Puede crear tantas instancias de una escena como desee. Podrías tener cinco o diez personajes en tu juego, creados a partir de tu escena Character.

Creando tu primera escena

Creemos nuestra primera escena con un solo nodo. Para hacerlo, primero deberá crear un nuevo proyecto. Después de abrir el proyecto, debería ver un editor vacío.

../../_images/nodes_and_scenes_01_empty_editor.png

In an empty scene, the Scene dock on the left shows several options to add a root node quickly. "2D Scene" adds a Node2D node, "3D Scene" adds a Spatial node, and "User Interface" adds a Control node. These presets are here for convenience; they are not mandatory. "Other Node" lets you select any node to be the root node. In an empty scene, "Other Node" is equivalent to pressing the "Add Child Node" button at the top-left of the Scene dock, which usually adds a new node as a child of the currently selected node.

Vamos a agregar un solo nodo Label a nuestra escena. Su función es dibujar texto en la pantalla.

Press the "Add Child Node" button or "Other Node" to create a root node.

../../_images/nodes_and_scenes_02_scene_dock.png

Se abre el cuadro de diálogo Crear Nodo, mostrando una larga lista de nodos disponibles.

../../_images/nodes_and_scenes_03_create_node_window.png

Seleccione el nodo Label. Puede escribir su nombre para filtrar la lista.

../../_images/nodes_and_scenes_04_create_label_window.png

Haga clic en el nodo Label para seleccionarlo y haga clic en el botón Crear en la parte inferior de la ventana.

../../_images/nodes_and_scenes_05_editor_with_label.png

Suceden muchas cosas cuando agregas el primer nodo de una escena. La escena cambia al espacio de trabajo 2D porque Label es un tipo de nodo 2D. El Label aparece seleccionado en la esquina superior izquierda del viewport. El nodo aparece en el panel de Escena en la izquierda, y las propiedades del nodo aparecen en el panel del Inspector en la derecha.

Cambiar las propiedades de un nodo

El siguiente paso es cambiar la propiedad "Text" del Label. Vamos a cambiarlo por "¡Hola Mundo!".

Dirígete al muelle Inspector a la derecha del viewport. Haga clic dentro del campo debajo de la propiedad Texto y escriba "Hola mundo".

../../_images/nodes_and_scenes_06_label_text.png

Verá el dibujo del texto en la ventana gráfica a medida que escribe.

Puede mover su nodo Label en la ventana gráfica seleccionando la herramienta de movimiento en la barra de herramientas.

../../_images/nodes_and_scenes_07_move_tool.png

Con la etiqueta seleccionada, haga clic y arrastre en cualquier lugar de la ventana gráfica para moverla al centro de la vista delimitada por el rectángulo.

../../_images/nodes_and_scenes_08_hello_world_text.png

Ejecutar la escena

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

../../_images/nodes_and_scenes_09_play_scene_button.png

Una ventana emergente lo invita a guardar la escena, lo cual es necesario para ejecutarla.

../../_images/nodes_and_scenes_10_save_scene_popup.png

Haga clic en el botón Sí y, en el explorador de archivos que aparece, presione el botón Guardar para guardarlo como "Label.tscn".

../../_images/nodes_and_scenes_11_save_scene_as.png

Nota

El cuadro de diálogo Guardar escena como, al igual que otros cuadros de diálogo de archivo en el editor, solo le permite guardar archivos dentro del proyecto. La ruta res:// en la parte superior de la ventana representa el directorio raíz del proyecto y significa "ruta del recurso". Para obtener más información sobre las rutas de archivos en Godot, consulte Sistema de archivos.

La aplicación debería abrirse en una nueva ventana y mostrar el texto "Hello World".

../../_images/nodes_and_scenes_12_final_result.png

Cierre la ventana o presione F8 para salir de la escena en ejecución.

Nota

Si esto no funciona de inmediato y tienes una pantalla hiDPI en al menos uno de tus monitores, ve a Proyecto → Configuración del Proyecto → Display → Window y habilita Allow Hidpi debajo de Dpi.

Configurando la escena principal

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

../../_images/nodes_and_scenes_13_play_button.png

Aparece una ventana emergente que le invita a seleccionar la escena principal.

../../_images/nodes_and_scenes_14_main_scene_popup.png

Haga clic en el botón Seleccionar y, en el cuadro de diálogo de archivo que aparece, haga doble clic en Label.tscn.

../../_images/nodes_and_scenes_15_select_main_scene.png

La demostración debería volver a ejecutarse. En el futuro, cada vez que ejecutes el proyecto, Godot usará esta escena como punto de partida.

Nota

El editor guarda la ruta de la escena principal en un archivo project.godot en el directorio de tu proyecto. Si bien puede editar este archivo de texto directamente para cambiar la configuración del proyecto, también puede usar la ventana "Proyecto -> Configuración del proyecto" para hacerlo.

En la siguiente parte, discutiremos otro concepto clave en los juegos y en Godot: crear instancias de una escena.