Mecánicas de movimiento y físicas sin código con comportamientos

Capítulo 4

Tiempo estimado de lectura: 8 minutos

+ Ejercicio

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

EnfoqueCómo se controlaSensación típicaCuándo usarlo
Movimiento directo (ej. 8Direction)El comportamiento fija la velocidad del objeto según la entradaPreciso, inmediato, “arcade”Top-down, shooters, puzzles de movimiento
Movimiento con físicas (ej. Physics)Fuerzas, aceleración, gravedad, fricción, impulsosMás “pesado”, inercia, rebotesJuegos 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

  1. Crea/selecciona tu objeto Player (sprite del personaje).
  2. Asegúrate de tener un layout con espacio suficiente para moverte.
  3. Identifica qué objetos serán suelo/paredes (en plataformas) o obstáculos (en top-down).

Opción A: personaje de plataformas con Platform

  1. Selecciona Player y añade el comportamiento Platform.
  2. 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.
  3. Para el suelo y plataformas, añade comportamiento Solid a los objetos que deban ser pisables/colisionables.
  4. Prueba: camina, frena, salta. Ajusta en este orden: Max speedAcceleration/DecelerationJump/Gravity.

Opción B: personaje top-down con 8Direction

  1. Selecciona Player y añade el comportamiento 8Direction.
  2. 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.
  3. Para paredes/obstáculos, añade Solid a los objetos que bloqueen movimiento.
  4. 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

  1. Selecciona Player y añade ScrollTo.
  2. Ejecuta y verifica que la cámara sigue al personaje.

Evitar salir del nivel

  1. Selecciona Player y añade BoundToLayout para impedir que el jugador salga del layout.
  2. Si la cámara muestra “vacío” fuera del nivel, una solución rápida es aplicar BoundToLayout también al objeto que controla el scroll (normalmente el mismo Player con ScrollTo) 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.

Continúa en nuestra aplicación.
  • Escuche el audio con la pantalla apagada.
  • Obtenga un certificado al finalizar.
  • ¡Más de 5000 cursos para que explores!
O continúa leyendo más abajo...
Download App

Descargar la aplicación

Proyectil con Bullet y restricciones anti-abuso

Crear el objeto proyectil

  1. Crea un sprite llamado Projectile (puede ser un círculo simple).
  2. Añade el comportamiento Bullet a Projectile.
  3. 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.
  4. Añade BoundToLayout a 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) o shootCooldown (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.0
    System: 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 Physics y control por fuerza: aplicas fuerza al presionar izquierda/derecha y limitas velocidad máxima.
  • Objetos del escenario con Physics para 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.

Ahora responde el ejercicio sobre el contenido:

Quieres que el personaje se sienta “pesado”, con inercia y posibles rebotes, y que su movimiento esté gobernado por fuerzas y gravedad. ¿Qué enfoque/comportamiento es el más adecuado?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Physics convierte el objeto en un cuerpo físico y se controla mediante fuerzas, impulsos y parámetros como fricción y gravedad, lo que produce una sensación más pesada con inercia y rebotes.

Siguiente capítulo

Lógica de juego con el sistema de eventos de Construct

Arrow Right Icon
Portada de libro electrónico gratuitaConstruct desde Cero: Aprende a Crear Juegos Sin Programar
40%

Construct desde Cero: Aprende a Crear Juegos Sin Programar

Nuevo curso

10 páginas

Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.