El sistema de movimiento de Stewart controla tanto al personaje jugable como a los acompañantes que lo siguen en fila. El líder del grupo responde a las entradas del jugador mediante una máquina de estados con tres estados (Idle, Walk, Run), mientras que los seguidores se posicionan automáticamente a lo largo de una curvaDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Stewart-DevTeam-Team/stewart_prealpha/llms.txt
Use this file to discover all available pages before exploring further.
Path2D que rastrea la trayectoria del líder.
Controles
| Acción | Teclado |
|---|---|
| Mover | Flechas direccionales / WASD |
| Correr | C (mantener) |
Constantes de movimiento
| Constante | Valor | Descripción |
|---|---|---|
walk_speed | 12.0 | Velocidad de caminata (unidades/frame) |
run_speed | 24.0 | Velocidad de carrera (unidades/frame) |
CHARA_DISTANCE | 30.0 | Distancia en píxeles entre personajes en la fila |
PATH_MAX_LENGTH | 100.0 | Longitud máxima de la curva de seguimiento |
MIN_PATH_TRACE | 1.0 | Distancia mínima recorrida para registrar un nuevo punto en la curva |
Máquina de estados
Cada personaje usa unaStateMachine que transita entre tres estados. El estado activo llama a physics_update en cada frame y puede emitir la señal to_state para cambiar de estado.
Idle
El personaje está en reposo. La velocidad se fija en
Vector2.ZERO y se reproduce la animación idle_<dirección>.Transita a Walk si hay entrada direccional activa, o a Run si se mantiene presionada la tecla sprint (C).Walk
El personaje se mueve en la dirección de la entrada a
walk_speed. Se reproduce la animación walk_<dirección>.Transita a Idle cuando se suelta el joystick/teclado, o a Run al presionar sprint.Sistema de seguimiento en fila
La claseCharactersPath (extiende Path2D) gestiona la fila de personajes. El primer hijo del nodo characters_node que sea Character se designa como líder; los demás se convierten en seguidores.
- El líder emite la señal
update_pathcada vez que se mueve al menosMIN_PATH_TRACEunidades, añadiendo un punto a la curvaPath2D. - Cuando la curva supera
PATH_MAX_LENGTH, se elimina el punto más antiguo para mantener una longitud constante. - Cada seguidor se ancla a un nodo
PathFollow2Dcon unRemoteTransform2Dque actualiza su posición en la curva. La distancia de cada seguidor al final de la curva esbaked_length - (i + 1) * CHARA_DISTANCE. - Los seguidores tienen
collision_layerycollision_masken0para no bloquear al líder.
characters_path.gd
Sistema de animaciones
El métodoplay_anim() en Character construye el nombre final de la animación combinando el nombre base con la dirección actual.
character.gd
<estado>_<dirección>. Las direcciones válidas son:
| Dirección de movimiento | Sufijo de animación | Nota |
|---|---|---|
| Arriba | _up | — |
| Abajo | _down | — |
| Derecha | _side | El sprite no se invierte |
| Izquierda | _side | El sprite se invierte horizontalmente (flip_h = true) |
right / left) comparten los mismos frames bajo el sufijo _side. El método play_anim() activa flip_h cuando la dirección es LEFT, de modo que solo se necesita un conjunto de sprites laterales para ambas direcciones.
Ejemplos de nombres de animación resultantes: idle_up, walk_down, run_side.