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)
Ve al escenario o al fondo.
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?> entoncescambiar 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.
Dentro del disfraz del personaje, dibuja dos líneas o un pequeño rectángulo de color azul en la zona de los pies.
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.
Crea una variable llamada
velocidad(solo para este objeto).Elimina los bloques de
cambiar x porfijos.En el bucle principal:
Añade:
cambiar x por (velocidad)
Al presionar flecha derecha:
cambiar velocidad por 1(acelera hacia la derecha)
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> entoncescambiar velocidad por -0.1(frena si va a la derecha)
si <velocidad < 0> entoncescambiar 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)
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.1al 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
Publicar un comentario