En móvil puedes leer en vertical. Para código y tareas interactivas es más cómodo girar la pantalla.

Lección 002

002. Primer script

Adjuntamos GDScript a Node2D, creamos scripts/main.gd, escribimos _ready(), mostramos un mensaje con print() y comprobamos el resultado en Output.

Qué estudiamos

En esta lección adjuntamos GDScript a un nodo por primera vez. El código será pequeño: muestra un mensaje en Output.

Pero este momento es importante. Aquí empieza el comportamiento del juego: la escena deja de ser solo un conjunto de objetos y recibe su primera orden.

Para qué sirve un script

Sin scripts, una escena solo guarda objetos. Sabe qué nodos hay dentro, cómo se llaman y dónde están colocados.

Un script hace que el objeto cobre vida: un botón reacciona, un personaje se mueve, una moneda desaparece y un temporizador cuenta el tiempo. Hoy empezamos con la reacción más pequeña: escribir texto en Output.

Qué obtendremos

Después de ejecutar la escena, el panel inferior Output mostrará este mensaje:

Привет, Godot! Сцена запустилась.

Esto significa que la escena se ejecutó, Node2D fue creado, Godot llamó a _ready() y print() funcionó.

Paso a paso en Godot

Avanzamos con pasos cortos: pulsamos, miramos, entendemos y comprobamos. Antes de reescribir código, asegúrate de que Node2D está seleccionado y de que la ruta del script es correcta.

Abrimos la escena main.tscn que creamos en la lección anterior. Por ahora, el árbol de escena solo tiene un nodo: Node2D.
En el panel FileSystem se ve el archivo main.tscn. Es el archivo de nuestra escena dentro del proyecto de Godot.
Seleccionamos Node2D en el árbol de escena. El script se adjuntará a este nodo.
En el Inspector, el campo Script todavía está vacío (<empty>). Esto significa que Node2D aún no tiene nuestro código.
Pulsamos el botón para añadir un script. Así creamos el primer GDScript para el nodo seleccionado.
Godot propone crear el script en res://main.gd. Funciona, pero para mantener el proyecto ordenado crearemos una carpeta scripts.
En el panel FileSystem abrimos el menú contextual y creamos una nueva carpeta para los scripts.
Cambiamos la ruta a res://scripts/main.gd. Ahora el código estará dentro de la carpeta scripts.
Cuando la ruta esté correcta, pulsamos Create. Godot creará main.gd y lo abrirá en el editor de scripts.
Godot abrió el nuevo archivo main.gd. Ya contiene código de plantilla: extends Node2D, _ready() y _process().
Simplificamos la plantilla y dejamos solo lo necesario para este primer script: _ready() y print().
Ahora el Inspector muestra que main.gd está adjunto a Node2D.
Ejecutamos la escena actual. La ventana del juego está vacía por ahora; es normal, porque nuestro código imprime el mensaje en Output, no en la pantalla del juego.
En el panel Output aparece el mensaje: “Привет, Godot! Сцена запустилась.” Esto significa que Godot llamó a _ready() y print() funcionó.

Código de la lección

Dejamos este código en scripts/main.gd:

extends Node2D

func _ready() -> void:
	print("Привет, Godot! Сцена запустилась.")

Análisis del código

extends Node2D

El script está adjunto a Node2D y amplía su comportamiento.

func _ready() -> void:

Es una función especial de Godot. Se llama cuando el nodo está listo.

print(...)

Muestra un mensaje en el panel Output. No es texto en la pantalla del juego; es salida de depuración para el desarrollador.

Paso importante: Ctrl + S

Después de cambiar el script, pulsa Ctrl + S. Esto guarda el archivo del script. Si olvidas guardarlo, puedes ejecutar una versión anterior del código o confundirte.

Qué ocurre al ejecutarlo

  1. Ejecutamos la escena.
  2. Godot crea Node2D.
  3. Godot ve que main.gd está adjunto a Node2D.
  4. El nodo entra en el árbol de escena.
  5. Cuando el nodo está listo, Godot llama a _ready().
  6. Dentro de _ready(), se ejecuta print().
  7. El texto aparece en Output.

Errores comunes

  • olvidaste seleccionar Node2D antes de Attach Script;
  • guardaste el script fuera de scripts/main.gd;
  • olvidaste pulsar Ctrl + S después de cambiar el código;
  • escribiste ready() en vez de _ready();
  • esperabas ver el texto en la ventana del juego, pero print() escribe en Output;
  • rompiste la indentación dentro de la función.

Mal:

func _ready() -> void:
print("Привет")

Bien:

func _ready() -> void:
	print("Привет")

Pequeña tarea

Cambia el texto dentro de print(), guarda el archivo con Ctrl + S y ejecuta la escena otra vez.

extends Node2D

func _ready() -> void:
	print("Мой первый скрипт работает!")

Siguiente paso

En la siguiente lección añadiremos el primer objeto visible: Sprite2D. Por ahora, el script solo escribe un mensaje en Output. Después veremos un objeto en pantalla y empezaremos a cambiar sus propiedades mediante el Inspector y el código.

← Atrás