12 Simulaciones físicas recorte-Félix Delgado Plana

 https://www.youtube.com/watch?v=G6xfBeqoLlg&t=1s

Simulación de Físicas en un Juego de Plataformas

🎯 Objetivo del tutorial

Aprender a programar un personaje que:

  • Caiga por gravedad.

  • Detecte el suelo solo con los pies.

  • Se mueva de forma fluida (aceleración y velocidad).

  • Tenga fricción para frenar progresivamente.


🧱 Paso 1: Dibujar las plataformas (el suelo)

  1. Ve al escenario o al fondo.

  2. Dibuja varios rectángulos de color rojo.

    • Estos rectángulos serán las plataformas donde el personaje podrá caminar y detenerse.

    • Usa un color diferente al del personaje (rojo es una buena opción).


⬇️ Paso 2: Simular la gravedad

Para que el personaje caiga hacia abajo:

  • Agrega un bucle que se ejecute todo el tiempo (por ejemplo, por siempre).

  • Dentro, añade el bloque:

    • cambiar y por -1

Con esto, el personaje caerá de forma continua. Verás que se va hacia abajo sin control.


🛑 Paso 3: Detener la caída al tocar el suelo

Para que no caiga atravesando las plataformas:

  • Dentro del bucle, agrega una condición:

    • si <tocando el color rojo?> entonces

      • cambiar y por 1 (o simplemente no dejar que siga bajando).

Ahora el personaje bajará hasta tocar el color rojo y se detendrá.


👣 Paso 4: Mejorar la detección (sensor en los pies)

Problema: Si toca el rojo con cualquier parte del cuerpo (cabeza, brazo), se queda pegado, lo cual no es realista.

Solución: Crear un sensor en los pies.

  1. Dentro del disfraz del personaje, dibuja dos líneas o un pequeño rectángulo de color azul en la zona de los pies.

  2. Cambia la condición anterior por:

    • si <color azul está tocando color rojo?> entonces

      • (detener la caída)

Así solo se detendrá cuando los pies toquen la plataforma.


🏃 Paso 5: Movimiento lateral con teclas

Añade el control básico con las flechas:

  • Al presionar flecha derecha:

    • cambiar x por 5 (o un valor fijo).

  • Al presionar flecha izquierda:

    • cambiar x por -5.


🔄 Paso 6: Corregir la rotación del personaje

Puede que el personaje se ponga cabeza abajo al moverse. Para evitarlo:

  • Cambia el estilo de rotación a solo izquierda-derecha o no rotar.

  • Esto mantiene al personaje siempre en posición vertical.


🚀 Paso 7: Movimiento más realista (MRU y aceleración)

En lugar de mover el personaje una cantidad fija al pulsar una tecla, vamos a usar una variable de velocidad para simular inercia.

  1. Crea una variable llamada velocidad (solo para este objeto).

  2. Elimina los bloques de cambiar x por fijos.

  3. En el bucle principal:

    • Añade: cambiar x por (velocidad)

  4. Al presionar flecha derecha:

    • cambiar velocidad por 1 (acelera hacia la derecha)

  5. Al presionar flecha izquierda:

    • cambiar velocidad por -1 (acelera hacia la izquierda)

Ahora el personaje se mueve con inercia: si velocidad es positiva, va a la derecha; si es negativa, a la izquierda; si es cero, no se mueve.


⚠️ Paso 8: Corregir el error común

Asegúrate de que estás usando la variable correcta. En el vídeo se menciona:

"Ey que hemos puesto cambiar la i y no la x"

Revisa tu código: los bloques deben usar la variable velocidad y modificar la posición x, no la y (a menos que sea para la gravedad).


🧊 Paso 9: Añadir fricción (rozamiento)

En el mundo real, la velocidad disminuye por el rozamiento. Para simularlo:

  • Dentro del bucle principal, agrega:

    • si <velocidad > 0> entonces

      • cambiar velocidad por -0.1 (frena si va a la derecha)

    • si <velocidad < 0> entonces

      • cambiar velocidad por 0.1 (frena si va a la izquierda)

Esto hará que el personaje se vaya frenando progresivamente hasta detenerse, dando una sensación mucho más natural.


✅ Resumen del código final (estructura lógica)

text
al presionar bandera
por siempre
    // Gravedad
    cambiar y por -1
    si <color azul está tocando color rojo?> entonces
        cambiar y por 1  // o simplemente no bajar más
    
    // Movimiento con velocidad
    cambiar x por (velocidad)
    
    // Fricción
    si <velocidad > 0> entonces
        cambiar velocidad por -0.1
    si <velocidad < 0> entonces
        cambiar velocidad por 0.1
text
al presionar tecla [flecha derecha]
    cambiar velocidad por 1

al presionar tecla [flecha izquierda]
    cambiar velocidad por -1

🧠 Consejos finales

  • Ajusta los valores de gravedad (-1), aceleración (1) y fricción (0.1) para que el movimiento se sienta cómodo.

  • Si el personaje se "hunde" en la plataforma, prueba a subirlo un poco más cuando detecte el color rojo.

  • Puedes añadir más plataformas de colores o diferentes niveles para hacer el juego más complejo.


🎬 ¡Y ya está!

Ahora tienes un personaje que:

  • Cae por gravedad.

  • Se detiene solo cuando toca el suelo con los pies.

  • Se mueve con inercia (acelera y frena de forma realista).

¡Perfecto para empezar tu propio juego de plataformas

Comentarios

Entradas más populares de este blog

1.4 - Interfaz de usuario-Xnergic TCM

1.7 - Bloques de uso más común-Xnergic TCM

1.5 - Personajes-Xnergic