learnGodot

A cookbook for Godot games :robot:

This project is maintained by Beelzenef

Eventos

Los eventos, como su definición dice, son cosas que ocurren en un determinado momento.

Los eventos en una engine son acciones, generalmente producidas por la persona que juega: pulsar una tecla es el evento básico en el desarrollo de videojuegos, y en ellos se basan el progreso del juego.

Estos eventos pueden ser “capturados”, expresión que se repite en otros lenguajes y en otros entornos de programación. Por capturar entendemos que, cuando usuario pulsa un botón, el programa lo percibe y actúa en consecuencia.

Capturando eventos

Vamos a realizar un sencillo ejemplo en el que podemos poner en práctica alguna de las lecciones aprendidas.

Añadiremos un botón, una etiqueta o label y a cada pulsación del botón, el texto de la etiqueta cambiará.

Para eso vamos a añadir un nodo inicial, y de él colgaremos dos nodos más: tipo Button y tipo Label. Del nodo inicial, seleccionamos la opción Attach or add script. Es ahí donde sucederá la magia de la programación.

Ahora seleccioanmos el botón, acudimos al inspector y veremos dos pestañas: Inspector, donde podemos editar el botón en su aspecto, y Nodo, donde se encuentran todos los eventos que podemos capturar:

Podemos detectar que se puede ser tan específico en los eventos, en las acciones, como deseemos. En concreto, seleccionaremos Pressed, que será cuando el botón sea pulsado.

Nos ofrece una opción llamada “Conectar”, que pulsaremos. La engine en ese momento nos está diciendo “Cuando el botón sea pulsado, ¿qué código quieres ejecutar?”. Y es entonces cuando seleccionamos el script creado en el nodo inicial.

Volveremos al script, para empezar a programar. Recuerda que si intentas conectar el evento a un nodo sin script, saltará un error que no nos permitirá avanzar.

Así que vamos al código, donde inicializamos una variable a 0, y a cada pulsación se aumentará en uno, cambiando el texto del nodo etiqueta.

extends Node

var nVeces = 0

func _ready():
    pass

func _on_btn_Unico_pressed():
    nVeces = nVeces + 1
    get_node("Label").set_text(String(nVeces))
    print("hey")

Se nos pedirá que seleccionemos una escena principal, y de momento será la única que tenemos en nuestro proyecto.

De forma sencilla, hemos creado nuestro primer proyecto, nuestra primer código y nuestras primeras acciones con la engine.


Volver a inicio

Página anterior, scripting

Siguiente página, aleatoriedad