Si formamos parte de un equipo de desarrollo, es probable que un miembro (diseñador/tester) no sepa de código. Al momento de querer cambiar el valor de algo, van a necesitar la ayuda del programador o lo intentarán cambiar ellos mismos.
Godot nos brinda una ayuda para estos casos, permitiendo que el valor de las variables puedan ser escritas desde el editor gráfico, el “inspector” donde cambiamos los valores generales de un nodo. Vamos a probar.
Usar “export” con una variable
Nos dirigirnos a un nodo que tenga un script, y antes de definir una variable que queramos exportar, escribimos export:
export var speed = 90
export var jump_speed = 200
export var gravity = 300
Si ahora hacemos clic en el nodo, veremos lo siguiente:
En este caso le hemos dado un valor por defecto a las variables, un valor numérico. Dentro del inspector sólo vamos a poder cambiar el valor original con números. Si no le damos un valor por defecto, haremos que se quede en null y nos devolverá un error.
Para exportar variables sin valor, tenemos que indicar el tipo de variable entre el “export” y el “var”. Con el ejemplo anterior, sería algo así:
export (int) var speed
export (int) var jump_speed
export (int) var gravity
Con eso decimos que las variables son de tipo entero (int).
Podemos hacer lo mismo con cualquier tipo de recurso que queramos guardar desde el editor. Para las cadenas de texto sería así:
export (String) var nombre
Y si queremos guardar una instancia, usamos esto:
export (PackedScene) var balas
Eso es todo sobre export. Espero que puedan hacer la vida de un diseñador más fácil. Si tienen una duda, déjenla en los comentarios.
Hola hice una export (int) var speed para mi personaje. Pero quiero que esta varie al tocar la tecla espacio. O sea, que cuando presiono la tecla el personaje duplique su velocidad.
Para eso utilice este codigo.
if Input.is_action_pressed(“speed”):
Velocidad += Velocidad * 2
Lo que no se como hacer para indicarle que cuando no estoy presionando la tecla, el valor de velocidad vuelva al original…
Agradezco mucho su ayuda
Primero, añade una variable que sea “init_speed” para la aceleración inicial. En la función ready haces que esa variable sea igual a “speed”. Después, debajo de ese if que me comentas, añade un “else” y dentro de él dices que la velocidad sea igual a init_speed.