· Cambiar idioma (Actualmente: Español)

Godot: veleta interactiva

Junio 06, 2021 13:17 -0500
«Y observó todo lo que había creado y vio que funcionaba. Y había viento y una veleta, y la veleta giraba por su fuerza. Y el controlito se sintió útil y se regocijó en su humilde trabajo.» — Yo

Hace meses que conseguí un control de juegos para entretenerme durante la pandemia, pero en el Sistema Guix no hay muchos juegos empacados y pocos de los que hay empacados son compatibles con controles. Recuerdo tres: SuperTuxKart, Starfighter y Mr. Rescue. Todos entretenidos, pero ya hace rato perdieron la gracia por varias razones.

Voy a aprender a programar el Godot Engine para sacarle un poquito de provecho al control. Mi primer ejercicio fue hacer una veleta (ver video).

Video. Una veleta girando según la fuerza del viento incrementada o disminuida por medio de un control de juegos. La veleta es una imagen dibujada en Inkscape y la programación de la interactividad es hecha en Godot Engine.

El programa que mueve la veleta es muy sencillo:

extends Sprite


# CONSTANTS
const ANGULAR_SPEED = 3  # radians
const MIN_LEVEL = 0  # min. wind force
const MAX_LEVEL = 12  # max. wind force
const WIND_INCREMENT = 0.1

# VARIABLES
var wind_level = MIN_LEVEL  # interval [0, 12]

# FUNCTIONS
func _process(delta):
	# Let user increase wind level.
	if Input.is_action_pressed("ui_right") and wind_level < MAX_LEVEL:
		wind_level += WIND_INCREMENT

	# Let user decrease wind level.
	if Input.is_action_pressed("ui_left") and wind_level > MIN_LEVEL:
		wind_level -= WIND_INCREMENT

	rotation += delta * ANGULAR_SPEED * wind_level
      
Código. Programa asociado al objeto que representa la veleta, escrito en el lenguaje de programación GDScript.

El resultado no es un juego, pero programar la ilusión de movimiento sí. Godot Engine se ve muy bien.

Temas relacionados: