Creación de Videojuegos. Godot Engine. Exportar variables

Tema 18. Godot Engine. Exportar variables

En Godot existe una forma sencilla de exportar el valor de las variables que nos permite acceder de una forma más sencilla a través de la barra de propiedades de una clase.

Por ejemplo, el script de nuestro proyecto, hemos declarado una variable

var Velocidad = 200

que define la velocidad de nuestro personaje. Recordemos en temas anteriores cuando programamos el  Movimiento Horizontal, la Caída y el salto del personaje donde declarábamos el siguiente código en la función process:

func _process(delta):
velocidad.y += 200 * delta
if Input.is_action_pressed(«Jump») and is_on_floor():
velocidad.y = -200
if Input.is_action_pressed(«Player_Left»):
$AnimationPlayer.play(«Left»)
velocidad.x = -100
if Input.is_action_pressed(«Player_Right»):
$AnimationPlayer.play(«Right»)
velocidad.x = 100
if !Input.is_action_pressed(«Player_Left») and !Input.is_action_pressed(«Player_Right»):
$AnimationPlayer.play(«Idle»)
velocidad.x = 0
if !is_on_floor():
$AnimationPlayer.play(«Animacion_JUMP») #Personaje saltando
move_and_slide(velocidad,Vector2(0,-1))

Si queremos mejorar el código y insertar el valor de la variable directamente desde las propiedades de la clase, declararemos las variables con la sentencia export delante:

export var Velocidad = 200

y modificamos los valores fijos de la velocidad en cada asignación:

func _process(delta):
velo.y += Velocidad * delta
if Input.is_action_pressed(«Jump») and is_on_floor():
velo.y = -Velocidad
if Input.is_action_pressed(«Player_Left»):
$AnimationPlayer.play(«Left»)
velo.x = -Velocidad
if Input.is_action_pressed(«Player_Right»):
$AnimationPlayer.play(«Right»)
velo.x = Velocidad
if !Input.is_action_pressed(«Player_Left») and !Input.is_action_pressed(«Player_Right»):
$AnimationPlayer.play(«Idle»)
velo.x = 0
if !is_on_floor():
$AnimationPlayer.play(«Animacion_JUMP») #Personaje saltando
move_and_slide(velo,Vector2(0,-1))

Ahora observamos como en las propiedades de la clase Player se muestra la opción de modificar la variable velocidad.

La variable Velocidad se muestra en las propiedades del Player. Godot
La variable Velocidad se muestra en las propiedades del Player. Godot

Podemos realizar los mismos cambios para la gravedad, quedando el código así,

export var Velocidad = 200
export var Gravedad = 250
var velo = Vector2()

# Called when the node enters the scene tree for the first time.
func _ready():
global_position = DataManager.init_position

# Called every frame. ‘delta’ is the elapsed time since the previous frame.
func _process(delta):
velo.y += Gravedad * delta
if Input.is_action_pressed(«Jump») and is_on_floor():
velo.y = -Velocidad
if Input.is_action_pressed(«Player_Left»):
$AnimationPlayer.play(«Left»)
velo.x = -Velocidad
if Input.is_action_pressed(«Player_Right»):
$AnimationPlayer.play(«Right»)
velo.x = Velocidad
if !Input.is_action_pressed(«Player_Left») and !Input.is_action_pressed(«Player_Right»):
$AnimationPlayer.play(«Idle»)
velo.x = 0
if !is_on_floor():
$AnimationPlayer.play(«Animacion_JUMP») #Personaje saltando
move_and_slide(velo,Vector2(0,-1))


func _on_Area2D_body_entered(body):
if body == self:
get_tree().reload_current_scene()


func _on_CheckArea2D0_body_entered(body):
if body == self:
DataManager.init_position = body.global_position

y mostrando las variables para que podamos ajustar su valor desde las propiedades de la clase:

Ahora se muestran todas las variables exportadas. Godot
Ahora se muestran todas las variables exportadas. Godot

ÍNDICE


0 0 votes
Calificación del artículo
Suscribirse
Notify of
guest
0 Comentarios
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x