El sistema de movimiento del jugador permite controlar la nave horizontalmente en la parte inferior de la pantalla. Utiliza variables de control y cálculos independientes de la tasa de frames para garantizar un movimiento fluido.
codeImplementación
func _mover_jugador(delta: float):
var dir = 0 # Dirección: -1 izquierda, 0 quieto, +1 derecha
# Revisamos qué bandera de control está activa
if tocando_izquierda: dir = -1
elif tocando_derecha: dir = +1
# Calculamos nueva posición con velocidad * tiempo * dirección
jugador.position.x = clamp(
jugador.position.x + dir * vel_jugador * delta,
0, pantalla.x - TAM_JUGADOR
)
var dir = 0 # Dirección: -1 izquierda, 0 quieto, +1 derecha
# Revisamos qué bandera de control está activa
if tocando_izquierda: dir = -1
elif tocando_derecha: dir = +1
# Calculamos nueva posición con velocidad * tiempo * dirección
jugador.position.x = clamp(
jugador.position.x + dir * vel_jugador * delta,
0, pantalla.x - TAM_JUGADOR
)
speedCaracterísticas del movimiento
flag
Variables
Controlan la dirección del movimiento
calculate
Cálculo
Posición = velocidad × tiempo
block
Límites
Restringe movimiento a la pantalla
timer
Uso de delta para movimiento independiente de la tasa de frames
swap_horiz
Variable dir determina dirección (-1: izquierda, 0: quieto, +1: derecha)
tuneParámetros de configuración
fast_forward
vel_jugador = 500.0 - Píxeles por segundo que se moverá el jugador
straighten
TAM_JUGADOR = 128 - Tamaño en píxeles de la nave
border_outer
clamp() - Función que limita el valor entre un mínimo y un máximo
compare_arrows
Límites: desde 0 (borde izquierdo) hasta pantalla.x - TAM_JUGADOR (borde derecho)