Saltar a contenido

Matemáticas aplicadas a juegos

Fórmulas

1. Distancia Euclidiana

La distancia entre dos puntos \((x_1, y_1)\) y \((x_2, y_2)\) está dada por: $$ d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} $$ Donde: - \( x_1, y_1 \) representan la posición del primer punto. - \( x_2, y_2 \) representan la posición del segundo punto.

Ejemplo: Si un enemigo está en \((3,4)\) y el jugador en \((6,8)\), la distancia entre ellos es: $$ d = \sqrt{(6 - 3)^2 + (8 - 4)^2} = \sqrt{3^2 + 4^2} = \sqrt{9 + 16} = \sqrt{25} = 5 $$

2. Normalización de Vectores

Para normalizar un vector \((dx, dy)\): $$ \text{longitud} = \sqrt{dx^2 + dy^2} $$ $$ dx' = \frac{dx}{\text{longitud}}, \quad dy' = \frac{dy}{\text{longitud}} $$ Donde: - \( dx, dy \) son las componentes del vector original. - \( dx', dy' \) son las componentes del vector normalizado.

Ejemplo: Si un enemigo se mueve con un vector \((3, 4)\), su normalización es: $$ \text{longitud} = \sqrt{3^2 + 4^2} = 5 $$ $$ dx' = \frac{3}{5} = 0.6, \quad dy' = \frac{4}{5} = 0.8 $$

3. Dirección de Disparo

Dado un enemigo en \((x_e, y_e)\) y el jugador en \((x_p, y_p)\), la dirección normalizada del disparo es: $$ dx = x_p - x_e, \quad dy = y_p - y_e $$ $$ \text{longitud} = \sqrt{dx^2 + dy^2} $$ $$ dx' = \frac{dx}{\text{longitud}}, \quad dy' = \frac{dy}{\text{longitud}} $$

Ejemplo: Si un enemigo está en \((2,3)\) y el jugador en \((5,7)\), entonces: $$ dx = 5 - 2 = 3, \quad dy = 7 - 3 = 4 $$ $$ \text{longitud} = \sqrt{3^2 + 4^2} = 5 $$ $$ dx' = 0.6, \quad dy' = 0.8 $$

4. Disparo en Ondas (Ángulos en Circunferencia)

Para generar disparos en todas direcciones alrededor de un objeto: $$ \theta_i = \frac{2\pi i}{N} $$ Donde \(N\) es el número total de disparos en la onda.

Ejemplo: Si se generan 8 disparos, los ángulos serán: $$ \theta_0 = 0, \quad \theta_1 = \frac{2\pi}{8}, \quad \theta_2 = \frac{4\pi}{8}, \quad ... $$

5. Separación entre Enemigos

Si dos enemigos están demasiado cerca, se repelen: $$ \Delta x = x_1 - x_2, \quad \Delta y = y_1 - y_2 $$ $$ d = \sqrt{\Delta x^2 + \Delta y^2} $$ Si \( d < d_{\text{min}} \), se aplica una fuerza de separación: $$ \Delta x' = \frac{\Delta x}{d} \cdot F_{\text{separación}}, \quad \Delta y' = \frac{\Delta y}{d} \cdot F_{\text{separación}} $$

Ejemplo: Si dos enemigos están en \((4,4)\) y \((5,6)\), su distancia es: $$ d = \sqrt{(5-4)^2 + (6-4)^2} = \sqrt{1+4} = \sqrt{5} $$ Si esta distancia es menor que el mínimo permitido, se aplica una fuerza de separación.

6. Persecución del Jugador por Enemigos

Si el jugador está dentro del rango de visión \(R\), la fuerza de atracción hacia él es: $$ F_x = \frac{x_p - x_e}{d} \cdot F_{\text{persecución}}, \quad F_y = \frac{y_p - y_e}{d} \cdot F_{\text{persecución}} $$

Ejemplo: Si \( F_{\text{persecución}} = 2 \) y el enemigo está en \((1,1)\) mientras que el jugador en \((4,5)\), entonces: $$ d = \sqrt{(4-1)^2 + (5-1)^2} = 5 $$ $$ F_x = \frac{3}{5} \times 2 = 1.2, \quad F_y = \frac{4}{5} \times 2 = 1.6 $$

7. Colisión con Paredes

Para encontrar el punto más cercano de una pared al jugador: $$ x_c = \max(x_{\text{pared}}, \min(x_p, x_{\text{pared}} + w_{\text{pared}})) $$ $$ y_c = \max(y_{\text{pared}}, \min(y_p, y_{\text{pared}} + h_{\text{pared}})) $$

8. Sistema de Puntuación y Multiplicador

El puntaje aumenta en función del multiplicador activo: $$ \text{puntuación} += 1 \times M $$ Donde \( M \) es el multiplicador de puntaje, que temporalmente se duplica al recolectar ciertas frutas: $$ M = 2, \quad \text{durante } T \text{ segundos} $$