Colisiones 2D: introducción

Post on 23-Jun-2015

511 views 0 download

description

Introducción a los tipos de colisiones de juegos 2D.

Transcript of Colisiones 2D: introducción

Colisiones 2D: IntroducciónPor: José Iván González Torres

http://ingenieria-dragogear.blogspot.mx/

Tipos de colisiones

Colisión por píxeles.✔ Comparación color y posición de píxeles.✔ Aplicar mascara a una imagen.✔ Convertir píxeles en rectángulos.

Colisiones por geometrías.✔ Puntos.✔ Rectángulos.✔ Círculos.✔ Linea y polígonos.✔ Combinaciones.

Colisión por píxeles

La colisión por píxeles es muy precisa pero su costo computacional es muy alto, y se incrementa en proporción de la calidad de las imágenes que se utilizan.

Comparación color y posición de píxeles:

Se recorre la imagen píxel por píxel obteniendo su posición actual e ignorando los píxeles del color seleccionado para comparar el resto de los píxeles de la imagen con otros objetos. En este ejemplo se ignoran los píxeles morados.

Aplicar mascara a una imagen.

Se hace con ayudad de dos imágenes, la primera que es nuestro personaje y la segunda que es un marco de recorte, donde ambas imágenes se sobreponen y solo se toman en cuenta los píxeles que no sean cubiertos por el color negro.

Convertir píxeles en rectángulos.

Se buscan cada píxel en la imagen con cualquiera de los dos anteriores métodos, pero por cada píxel de importancia se crea un rectángulo que es almacenado en un espacio de memoria y que se utilizan para verificar si la imagen esta en colisión.

Tan solo este pedazo de cuerno tiene más de 20 píxeles, esos son 20 rectángulos solo para calcular este trozo de imagen.

Colisiones de geometrías

Las colisiones por geometrías consisten en calcular y/o comparar la posición de la figuras y obtener uno o más puntos de intersección para comprobar si los objetos están en colisión.

Las colisiones geométricas se pueden combinar entre si y con otros sistemas de detección de colisiones, además de que se pueden adaptar para lograr la mayor eficiencia posible con respecto de la aplicación o juego donde se este implementando este sistema.

Puntos:

La estructura de un puto es (Posición “X”, Posición “Y”): (X,Y).

Normalmente se utiliza para verificar la posición del puntero y compararla con otras geometrías principalmente con rectángulos.

Rectángulo:

La estructura del rectángulo es (Posición “X”, Posición “Y”, Tamaño ”X”, Tamaño Y): (X,Y,Tx,Ty)

Los rectángulos son de los más utilizados en la detección de colisiones por su bajo costo computacional y su facilidad de implementación.

Círculos:

La estructura del circulo es (Posición “X”, Posición “Y”), Radio: (X,Y),r.

Después del rectángulo es el más utilizado, requiere de un costo computacional ligeramente más elevado que los rectángulos y como una ventaja adicional se pueden rotar imágenes con cuerpos construidos con círculos sin perder la convergencia entre la imagen y el cuerpo de círculos.

Linea y polígonos:

La estructura de una linea es (Posición1 “X”, Posición1 “Y”),(Posición2 “X”, Posición2 “Y”): (X1,Y1),(X2,Y2)

La estructura de un polígono es (Punto_1,Punto_2,Punto_3,...,Punto_n): (P1,P2,P3,...,Pn)

La colisión entre lineas y polígonos es de las más precisas pero entre las geometrías es la que requiere más recursos por lo que se combina con círculos o rectángulos para minimizar el costo computacional.

Este sistema permite rotar un polígono sin perder precisión y permite crear figuras muy complejas.

¿Cuál elegir?

Eso depende de la mecánica del videojuego, la precisión que requieran las colisiones y la plataforma a la que valla dirigido el juego. Si el juego es sencillo se utiliza un sistema sencillo. Si es un juego de naves donde se requiere precisión y hay rotaciones lo ideal seria utilizar círculos y polígonos, si es un juego de plataforma normalmente con rectángulos es suficiente, para un juego de peleas se pueden combinar rectángulos y círculos dependiendo de la mecánica que tenga el juego de peleas.

Ejemplos

En este ejemplo se utilizan polígonos y círculos. De esta manera es relativamente fácil dotar de física al juego como gravedad.

Una comparación de los sistemas de colisión y sus combinaciones.

Juego sencillo sistema de colisiones sencillo.

Redes sociales

http://ingenieria-dragogear.blogspot.mx/

https://www.facebook.com/PythonDragogear?ref=hl

https://twitter.com/IvanDragogear