colisiones 2d: introducción

14
Colisiones 2D: Introducción Por: José Iván González Torres http://ingenieria-dragogear.blogspot.mx/

Upload: ivan-dragogear

Post on 23-Jun-2015

511 views

Category:

Software


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Colisiones 2D: introducción

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

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

Page 2: Colisiones 2D: introducción

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.

Page 3: Colisiones 2D: introducción

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.

Page 4: Colisiones 2D: introducción

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.

Page 5: Colisiones 2D: introducción

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.

Page 6: Colisiones 2D: introducción

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.

Page 7: Colisiones 2D: introducción

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.

Page 8: Colisiones 2D: introducció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.

Page 9: Colisiones 2D: introducción

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.

Page 10: Colisiones 2D: introducción

¿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.

Page 11: Colisiones 2D: introducción

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.

Page 12: Colisiones 2D: introducción

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

Page 13: Colisiones 2D: introducción

Juego sencillo sistema de colisiones sencillo.

Page 14: Colisiones 2D: introducción

Redes sociales

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

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

https://twitter.com/IvanDragogear