Integración de Euler: el concepto básico

La integración de Euler es uno de los conceptos más básicos e intuitivos en la programación de juegos. Es común que los principiantes lo implementen en sus proyectos sin saber exactamente qué es, aunque pueden haberlo visto antes. Para demostrar, esta es la forma genérica de integración de Euler, ya que se aplica a la programación de juegos:

velocidad horizontal = (velocidad horizontal + aceleración horizontal)* paso de tiempo;
Velocidad vertical = (velocidad vertical + aceleración vertical) * paso de tiempo;

x posición = x posición + velocidad horizontal;
y posición = y posición + velocidad vertical;

Sin embargo, también es común ver la integración de Euler simplificada a esto:

Velocidad horizontal = valor elegido para la velocidad horizontal;
Velocidad vertical = valor elegido para la velocidad vertical;

x posición = x posición + velocidad horizontal;
y posición = y posición + velocidad vertical;

Esencialmente, con la integración de Euler, el programador tiene un control absoluto sobre los valores de la velocidad horizontal y la velocidad vertical de un objeto en cualquier momento dado. Desafortunadamente, esta es una espada de doble borde: la integración de Euler de control le da al programador sobre estos dos valores es el precio de que siempre necesita verificar si la velocidad horizontal y la velocidad vertical se comportan correctamente. La integración de Euler no es naturalmente capaz de adaptar estos valores a una situación dada.

Aquí hay un diagrama que muestra el patrón de comportamiento básico de la integración de Euler:

Images.associatedContent.com/image/ A1269/1269656/470_1269656.png

Como se puede ver, no hay asociación entre el valor de velocidad anterior y el valor de velocidad. No tienen interrelación. El resultado es que en ciertas situaciones, como la detección de colisiones, el programador no solo debe escribir un algoritmo para alejar los objetos colisionados entre sí, sino que también debe escribir un algoritmo para calcular y aplicar los cambios en la velocidad para cada objeto. <// P>

READ  10 consejos para hacer un favicon efectivo

Sin embargo, hay situaciones aún más complicadas que simplemente la detección de colisiones donde la integración de Euler es una mala elección, como preservar el impulso, balancearse desde una cuerda (o restricciones de posición en general) y simulaciones de física avanzada donde la rotación de objetos es tomado en cuenta. Desafortunadamente, estos pueden ser objetivos de diseño bastante comunes, y la integración de Euler no brinda a los programadores las herramientas adecuadas para manejarlos. Es posible usar la integración de Euler para estas cosas, pero increíblemente difícil.

Sin embargo, sería un error llamar a la integración de Euler. Para situaciones en las que la aceleración no será un factor, la integración de Euler es más simple y más rápida que otras técnicas de integración, como la integración de verlet y Runge-Kutta. Todo depende de la situación que sea mejor usar y se necesita mucha experiencia para tomar la decisión adecuada, aunque puedo ofrecer varias pautas:

1. La integración de Euler es una reducción natural de otra integración Las técnicas en los casos en que la aceleración no cambiará y la velocidad de un objeto es constante. Para las armas de proyectiles rectas, la integración de Euler a menudo puede ser la opción preferida.

2. La integración de Euler es aceptable para situaciones en las que el movimiento es demasiado simple. Por ejemplo, en juegos como Pacman o Space Invaders, la integración de Euler es ideal. Sin embargo, en juegos como Galaga donde el movimiento es errático e impredecible, la integración de verlet puede ser la opción preferida.

3. La integración de Euler puede ser adecuada para animaciones o eventos de guión donde el movimiento implícito es más importante que el precisión de la moción. Por ejemplo: efectos de partículas. Raramente existe la necesidad de que las partículas se comporten con precisión, generalmente no afectan el juego.

READ  Cómo mejorar su rango de búsqueda de Google

Una buena comprensión de la integración de Euler y sus usos y sus caídas es esencial para el diseño competente del juego. Todos los que se creen en un programador de juegos deben pasar mucho tiempo experimentando con él hasta que sea familiar en la implementación y la naturaleza.