Creación de Videojuegos. Godot Engine. Función _process.

Tema 8. Godot Engine. Función _process. Configurar acciones

Cuando abrimos un Script, observamos que se crea el siguiente código generado por el motor:

extends KinematicBody2D


# Declare member variables here. Examples:
# var a = 2
# var b = “text”


# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.


# Called every frame. ‘delta’ is the elapsed time since the previous frame.
#func _process(delta):
# pass

extends KinematicBody2D significa que dicho Nodo se extiende de la clase KinematicBody2D y por lo tanto hereda sus propiedades. 

Para comentar una línea de código se usa la almohadilla: # delante del código que queremos comentar.

Tenemos una función llamada _ready() que se ejecuta una única vez al iniciarse el Nodo.

Ya veremos que GDScript es un lenguaje de tipo identado, que significa que la posición en que se encuentra una línea de código “respecto de su origen o margen izquierdo” determina su comportamiento. Fijarse como se muestra el símbolo (flecha-Raya) delante de la sentencia pass. Si tabulamos, veremos que se muestra otro. Eso es la identación.

Vemos que hay una función que está comentada:

#func _process(delta):
# pass

Vamos a descomentarla y añadirle una nueva sentencia:

func _process(delta):
print(“PASA POR AQUÍ”)

La instrucción PRINT, imprime texto en la Consola.

Ahora haremos Play en el Nodo y observamos la salida en la consola de Godot.

Vemos como PASA POR AQUÍ se repite de forma indefinida.

Esto ocurre porque la función _process se ejecuta cada vez que se dibuja un Frame, es decir, cada vez que el motor dibuja sus elementos en la pantalla de forma contínua.

Este intervalo de ejecución puede variar dependiendo de los fps o frame por segundo y determina cuando cuadros o frames se ejecutarán por segundo. Esto depende también de cada dispositivo.

En nuestro proyecto hemos creado dos Nodos diferentes:

Escena1 tiene como hijos al Player (Sprite) y su Collisión y también el Nodo Cuerpo Rígido con todos sus componentes creados en Temas anteriores. 

Scripts con Godot
Scripts con Godot

Ahora vamos a arrastrar el Nodo Escena1 que contiene al Jugador al Nodo CuerpoRígido:

Más abajo de este tema explicaremos la función Input.is_action_pressed y sus parámetros mediante la Configuración de acciones.

Podemos observar como ahora el Nodo CuerpoRígido tiene el Nodo Jugador (Escena1) asignado. Si ejecutamos El Nodo CuerpoRígido, observamos que las líneas de código PASA POR AQUÍ también se imprimen.

Ahora modificaremos el código por este: (Cuidado porque se deben añadir dos puntos después del if

func _process(delta):
if Input.is_action_pressed(“ui_left”):
print(“TECLA IZQUIERDA PULSADA”)

El código comprueba si se ha presionado la tecla flecha izquierda.

Hacemos Play y comprobamos que al pulsar la tecla Flecha izquierda aparece el mensaje en la cónsola.

Configuración de acciones

En Godot también podemos configurar nuestras propias acciones. Esto es interesante cuando queremos definir por ejemplo una misma acción cuando pulsamos algunas teclas.

Para ello iremos a Projects (Proyecto) -> Settings (Configuración del Proyecto)

Iremos a la pestaña Input Map o Mapa de Entrada:

Aquí veremos todas las opciones que tenemos configuradas por defecto y qué teclas tenemos asignadas.

Configuración de acciones en Godot.
Configuración de acciones en Godot.

Vamos a crear una acción para nuestro personaje: por ejemplo Personaje_LEFT

Escribiremos  Personaje_LEFT en la casilla de Acción y pulsaremos el botón Añadir

Ahora vamos a la entrada que hemos creado y le damos al botón + para añadir una nueva tecla.

Asignamos una tecla en Godot para mover el personaje
Asignamos una tecla en Godot para mover el personaje

Ahora nos aparece un mensaje indicando que confirmemos una tecla. Por ejemplo, pulsaremos la tecla ‘Z’ en nuestro teclado para asignar dicha acción a dicha tecla. También podemos asignar más de una tecla a una acción. Probemos ahora a hacer lo mismo pero con la tecla flecha izquierda.

Nos debe quedar así:

Asignamos la tecla Z para mover el personaje a la izquierda. Godot
Asignamos la tecla Z para mover el personaje a la izquierda. Godot

Podemos hacer lo mismo para el personaje derecha. Creamos una acción llamada Personaje_RIGHT y asignamos las teclas ‘x’ y flecha derecha.

Quedando así:

Asignamos la tecla X para mover el personaje a la derecha. Godot
Asignamos la tecla X para mover el personaje a la derecha. Godot

Ahora escribiremos el siguiente código en nuestro Script: tenemos que ir con cuidado con la identación. El if debe ir debajo del if y el print con una tabulación.


func _process(delta):
if Input.is_action_pressed(“Personaje_LEFT”):
print(“Personaje LEFT”)
if Input.is_action_pressed(“Personaje_RIGHT”):
print(“Personaje RIGHT”)

Iniciamos el proyecto y probamos a pulsar las teclas z y x o las flechas del teclado. Observamos cómo se visualiza en la consola el texto que corresponde a la acción que hemos ejecutado.


ÍNDICE


0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x