Qué son los comportamientos y por qué sirven para el movimiento
En Construct, un comportamiento es un módulo que se añade a un objeto para darle capacidades listas para usar (por ejemplo, moverse como personaje de plataformas, reaccionar a la gravedad, disparar proyectiles o mantener la cámara centrada). La ventaja es que la lógica principal vive en parámetros y acciones del propio comportamiento, reduciendo la necesidad de eventos complejos.
Movimiento directo vs movimiento basado en físicas
| Enfoque | Cómo se controla | Sensación típica | Cuándo usarlo |
|---|---|---|---|
Movimiento directo (ej. 8Direction) | El comportamiento fija la velocidad del objeto según la entrada | Preciso, inmediato, “arcade” | Top-down, shooters, puzzles de movimiento |
Movimiento con físicas (ej. Physics) | Fuerzas, aceleración, gravedad, fricción, impulsos | Más “pesado”, inercia, rebotes | Juegos con empuje, objetos que ruedan, interacciones físicas |
Regla práctica: si quieres que el personaje responda exactamente a la dirección del jugador, usa movimiento directo. Si quieres que el personaje “obedezca” leyes físicas (inercia, empuje, gravedad real), usa físicas. En plataformas, lo habitual es Platform (no es un motor físico completo, pero simula gravedad y salto de forma controlada).
Comportamientos clave para este capítulo
Platform (plataformas)
- Diseñado para personajes que caminan y saltan sobre suelos.
- Parámetros típicos: Max speed, Acceleration, Deceleration, Jump strength, Gravity.
- Ideal para “sensación” tipo plataformas clásica sin complicarte con fuerzas físicas reales.
8Direction (top-down)
- Movimiento en 8 direcciones (o 4 si lo limitas).
- Parámetros típicos: Max speed, Acceleration, Deceleration, Set angle (si rota o no).
- Muy útil para control inmediato y consistente.
Physics (físicas)
- Convierte el objeto en un cuerpo físico con masa, fricción, elasticidad, gravedad, etc.
- Se controla con fuerzas/impulsos o ajustando velocidades, pero la simulación manda.
- Recomendación: úsalo cuando la interacción física sea parte del diseño, no solo para “moverse”.
Bullet (proyectiles)
- Mueve un objeto en línea recta a una velocidad constante, con opciones como ángulo, aceleración y rebotes (según configuración).
- Perfecto para balas, flechas, bolas de energía, etc.
ScrollTo (cámara)
- Hace que la cámara siga a un objeto (normalmente el jugador).
- Se suele combinar con límites para evitar ver fuera del nivel.
BoundToLayout (límites)
- Evita que un objeto salga de los límites del layout.
- Útil para: jugador en top-down, cámara, proyectiles, enemigos, objetos coleccionables.
Ajuste de parámetros: cómo “probar la sensación” de control
La sensación de control se define por relaciones entre parámetros, no por un valor aislado. Trabaja con este método: cambia un parámetro, prueba 10 segundos, y decide si el cambio mejora o empeora el objetivo (precisión, rapidez, peso, dificultad).
Parámetros que más afectan a la sensación
- Aceleración: cuánto tarda en alcanzar la velocidad. Alta = respuesta inmediata; baja = inercia.
- Velocidad máxima: ritmo del juego. Si es muy alta, el control se vuelve difícil; si es baja, puede sentirse lento.
- Fricción / Deceleración: cuánto tarda en detenerse al soltar la tecla. Alta = se para en seco; baja = se desliza.
- Gravedad (Platform/Physics): define caída y tiempo en el aire. Alta = saltos cortos y caídas rápidas; baja = flotante.
- Salto (Jump strength): altura y “pegada” del salto. Ajusta junto con gravedad.
Mini-recetas de sensación (orientativas)
- Arcade preciso: aceleración alta, deceleración alta, velocidad media.
- Pesado/inercial: aceleración media-baja, deceleración baja, velocidad media.
- Plataformas “rápido”: max speed alta, gravedad alta, salto fuerte, buena deceleración para aterrizajes controlados.
Guía práctica paso a paso: controlador de personaje (elige una opción)
Vas a implementar un controlador completo con cámara y límites. Elige Opción A (plataformas) o Opción B (top-down). En ambas, al final crearás un proyectil con Bullet y restricciones anti-abuso.
Preparación común
- Crea/selecciona tu objeto Player (sprite del personaje).
- Asegúrate de tener un layout con espacio suficiente para moverte.
- Identifica qué objetos serán suelo/paredes (en plataformas) o obstáculos (en top-down).
Opción A: personaje de plataformas con Platform
- Selecciona Player y añade el comportamiento
Platform. - En las propiedades de
Platform, ajusta un punto de partida:- Max speed: medio (para no perder control).
- Acceleration: alta si quieres respuesta rápida.
- Deceleration: alta para frenar al soltar.
- Jump strength: medio-alto.
- Gravity: medio-alto.
- Para el suelo y plataformas, añade comportamiento
Solida los objetos que deban ser pisables/colisionables. - Prueba: camina, frena, salta. Ajusta en este orden: Max speed → Acceleration/Deceleration → Jump/Gravity.
Opción B: personaje top-down con 8Direction
- Selecciona Player y añade el comportamiento
8Direction. - Configura un punto de partida:
- Max speed: medio.
- Acceleration: alta para respuesta inmediata o media para inercia.
- Deceleration: alta para parar rápido.
- Set angle: desactívalo si no quieres que el sprite rote al moverse.
- Para paredes/obstáculos, añade
Solida los objetos que bloqueen movimiento. - Prueba: cambios de dirección rápidos, esquinas, pasillos estrechos. Ajusta Deceleration si “patina” demasiado.
Añadir cámara y límites (ScrollTo + BoundToLayout)
Cámara que sigue al jugador
- Selecciona Player y añade
ScrollTo. - Ejecuta y verifica que la cámara sigue al personaje.
Evitar salir del nivel
- Selecciona Player y añade
BoundToLayoutpara impedir que el jugador salga del layout. - Si la cámara muestra “vacío” fuera del nivel, una solución rápida es aplicar
BoundToLayouttambién al objeto que controla el scroll (normalmente el mismo Player conScrollTo) y asegurarte de que el layout tiene tamaño acorde al nivel.
Consejo: en top-down, BoundToLayout es casi obligatorio para evitar que el jugador se pierda fuera del área jugable. En plataformas, también es útil para impedir caídas fuera del mapa si tu diseño lo requiere.
- Escuche el audio con la pantalla apagada.
- Obtenga un certificado al finalizar.
- ¡Más de 5000 cursos para que explores!
Descargar la aplicación
Proyectil con Bullet y restricciones anti-abuso
Crear el objeto proyectil
- Crea un sprite llamado Projectile (puede ser un círculo simple).
- Añade el comportamiento
Bulleta Projectile. - Ajusta propiedades típicas:
- Speed: medio-alto.
- Acceleration: 0 (para que sea constante) o positiva si quieres que gane velocidad.
- Set angle: activado si quieres que apunte hacia su dirección de movimiento.
- Añade
BoundToLayouta Projectile para que no exista eternamente fuera de cámara.
Eventos para disparar (ejemplo práctico)
En la hoja de eventos, crea una lógica de disparo. Ejemplo: disparar con una tecla y crear el proyectil en la posición del jugador.
Keyboard: On Space pressed -> System: Create object Projectile on layer (tu capa) at (Player.X, Player.Y) -> Projectile: Set angle toward (Mouse.X, Mouse.Y)Si tu juego no usa ratón (por ejemplo, plataformas), puedes disparar hacia la dirección del movimiento. Una aproximación simple es guardar la última dirección mirando (variable) y usarla como ángulo del proyectil.
Restricciones para evitar abuso (cadencia, límite y limpieza)
Sin restricciones, el jugador puede saturar la escena con proyectiles. Aplica al menos dos de estas medidas:
- Cadencia (cooldown): añade una variable al jugador, por ejemplo
canShoot(boolean) oshootCooldown(número).Keyboard: On Space pressed + Player.canShoot = true -> Create Projectile ... -> Player.canShoot = false -> System: Wait 0.2 seconds -> Player.canShoot = true - Límite de proyectiles en pantalla: antes de disparar, comprueba cuántos existen.
Keyboard: On Space pressed + System: Projectile.Count < 5 -> Create Projectile ... - Destruir al colisionar: si golpea pared/enemigo, se elimina.
Projectile: On collision with Solid -> Projectile: Destroy - Tiempo de vida (TTL): destruye tras X segundos para evitar acumulación.
System: On created Projectile -> Projectile: Set instance variable life = 1.0System: Every tick -> Projectile.life -= dt -> Projectile.life <= 0 -> Projectile: Destroy
Cuándo conviene Physics en lugar de Platform/8Direction
Si intentas recrear empujes, cajas que se deslizan, objetos que ruedan o rebotes consistentes, Physics puede ser mejor. Pero para un personaje principal, suele implicar más ajuste fino para que el control no se sienta “resbaladizo”.
Ejemplo de uso típico con Physics (idea práctica)
- Jugador con
Physicsy control por fuerza: aplicas fuerza al presionar izquierda/derecha y limitas velocidad máxima. - Objetos del escenario con
Physicspara que reaccionen a empujes.
Si pruebas Physics para el jugador, presta atención a: fricción, damping (amortiguación), masa y límites de velocidad. La meta es que el jugador se detenga cuando tú quieres, no cuando la simulación “decida” demasiado tarde.