1 de junio de 2015

Colisiones 2D (1/2)

Una de las claves para que un videojuego sea exitoso es la buena interacción de los objetos que lo componen. Muchos que han fracasado en este aspecto han llegado a estar catalogados en rankings de “los peores videojuegos”. ¿Cómo se logra una buena interacción de los objetos? Mucho depende del tipo de videojuego que estemos diseñando. En este caso voy a referirme a las colisiones de objetos en 2 dimensiones (colisiones 2D). Desde luego, este principio que voy a analizar puede ser ampliado y aplicado a proyectos más complejos. La forma más común de definir colisiones 2D es por medio de áreas rectangulares. Por ejemplo: supongamos que tenemos 2 áreas rectangulares. Por propiedad del rectángulo sabemos que cada uno consta de 2 lados paralelos, por lo cual, para dibujar cada uno, solo necesitamos 4 valores (2 en el eje x, 2 en el eje y). A los valores del primer rectángulo le llamaremos: h1, h2, b1 y b2, y los del segundo rectángulo: x1, x2, y1 e y2.
Con los datos que tenemos, ¿cómo podemos saber si los rectángulos están colisionando? Tan solo debemos comparar los valores de cada eje en ambos rectángulos. Como vemos en la imagen, el primer rectángulo comienza en h1 en el eje x, y finaliza en h2. Si el primer rectángulo finaliza antes de que comience el segundo rectángulo, no está colisionando y viceversa; si el segundo rectángulo finaliza antes de que comience el primero, tampoco colisiona. Esto sucede de igual manera en el eje y. De forma que, podríamos resumir, que ambos rectángulos colisionan cuando ninguna de las siguientes condiciones se cumple:
h2 < x1
x2 < h1
b2 < y1
y2 < b1
Ahora bien, aunque sepamos como determinar la colisión de 2 rectángulos, en videojuegos, es importante saber también cómo y cuándo aplicar esta técnica. En la siguiente parte, analizaremos algunos videojuegos que hacen buen uso de este método.