Ya vimos como determinar
colisiones entre 2
rectángulos. Ahora veamos como podemos aplicarlo en los videojuegos.
Lo primero que tenemos que entender es que el
área o
caja de colisión (
hitboxes en inglés), si bien está referida a las
coordenadas del sprite, no tiene porque tener sus mismas
dimensiones.
La imagen anterior corresponde a la página 48 del
documento de diseño del videojuego
Downtown Nekketsu Koushinkyoku Soreyuke Daiundoukai donde nos muestra las
hitboxes de
Kunio. Si bien no podemos contar con los
documentos de diseño de todos los videojuegos, hoy en día existen
herramientas que nos permiten visualizar las
hitboxes de algunos.
Veamos un ejemplo simple:
En
Super Mario Bros, podemos notar que las
hitboxes, como ya mencionamos, no tienen el mismo
tamaño del sprite, e incluso en algunos casos hasta exceden del mismo. ¿Por qué? Bueno, la razón es simple: para mejorar la
jugabilidad. En la imagen notamos que la
hitbox de
Mario se excede en la parte baja. Esto se debe a que el principal
ataque de Mario es
saltar encima del enemigo, y si para esto contamos con un
margen de error, nos resultará más fácil ejecutar dicha acción.
Veamos otro ejemplo:
En
Final Fight utilizan 2
hitboxes por personaje: una para el
área de vulnerabilidad (color azul) y otra para el
área de ataque (color rojo).
Observamos que el
área de ataque de algunos personajes está a la altura de las piernas. ¿Por qué? Para que sea más fácil contrarrestarlos con un
ataque aéreo. También notamos que los personajes que se levantan luego de ser derribados, no cuentan con
área de vulnerabilidad, lo que les permite reincorporarse sin problemas.
Por otro lado, aquellos enemigos que atacan
barriéndose cuentan con un
área de vulnerabilidad que está por encima del cuerpo. ¿Por qué? También, para poder contrarrestar mejor su ataque con una
acción aérea. Notamos además, que los
objetos que contienen ítems, como los barriles, cuentan con su propia
área de vulnerabilidad.
Un ejemplo más complejo es el de
Street Fighter 2. Es un videojuego bastante exitoso, y parte de su éxito se debe a la
variedad y
precisión con la que conectamos los
golpes. Analicemos un ejemplo típico:
Blanka caminando por debajo de los
Tatsumakis de
Ryu y
Ken. ¿Cómo es posible?
5 hitboxes:
presión (color verde),
vulnerabilidad en la cabeza (color azul),
vulnerabilidad en el cuerpo (color azul),
vulnerabilidad en piernas (color azul) y
área de ataque (color rojo). Habría una 6ta para los
agarres, pero no la vamos a tomar en cuenta en esta ocasión.
Las
áreas de vulnerabilidad y
ataque están claras, pero ¿el
área de presión? Las
hitboxes de presión son aquellas que impiden que un personaje ocupe la
posición del otro, dando la sensación de que ocupan un
espacio físico en el juego. En la imagen notamos como las
hitboxes de vulnerabilidad de
Blanka están por debajo del
ataque de
Ken.
En la serie
The King of Fighters utilizan un método similar, pero en vez de 3
hitboxes de vulnerabilidad utilizan solo 2. Además, utilizan otro tipo de
hitboxes: las de
neutralización de proyectiles (color amarillo). En la siguiente imagen podemos ver el alcance del
Kohoken de
Takuma en
The King of Fighters 2002, el cual no tiene un
proyectil visible, así como sus demás
hitboxes.
Ahora bien, ¿qué sucede si nuestro
sprite es demasiado grande e irregular? Lo mejor es utilizar cuantas
hitboxes sean necesarias, dividiendo el
sprite por secciones y así lograr una mayor
precisión.
Notamos como en el juego
The Punisher, el enemigo de la imagen cuenta con varias
hitboxes, logrando una buena
precisión en las
conexiones de golpes.
Analizar estos ejemplos nos ayudan a determinar la forma en que podemos realizar las
colisiones de nuestros proyectos.