SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Colisiones 2D: Introducción
Por: 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

Contenu connexe

Tendances

ESTRATEGIAS PARA UN MEJOR DESARROLLO DE LA GEOMETRÍA Y ESTADISTICA
ESTRATEGIAS PARA UN MEJOR DESARROLLO DE LA GEOMETRÍA Y ESTADISTICAESTRATEGIAS PARA UN MEJOR DESARROLLO DE LA GEOMETRÍA Y ESTADISTICA
ESTRATEGIAS PARA UN MEJOR DESARROLLO DE LA GEOMETRÍA Y ESTADISTICAYESSICA NATALI CORREA MARTINEZ
 
Presentación de propuesta
Presentación  de propuestaPresentación  de propuesta
Presentación de propuestaNoelia Zollinger
 
Maquinas monofuncionales
Maquinas monofuncionalesMaquinas monofuncionales
Maquinas monofuncionalesSebas Cdlm
 
El juego como medio para aprender matemática
El juego como medio para aprender matemáticaEl juego como medio para aprender matemática
El juego como medio para aprender matemáticaliz leonardo
 
Las matematicas del viaje - Trabajo por proyectos (PBL)
Las matematicas del viaje - Trabajo por proyectos (PBL) Las matematicas del viaje - Trabajo por proyectos (PBL)
Las matematicas del viaje - Trabajo por proyectos (PBL) Luis Miguel Iglesias Albarrán
 
Plan de clase 2° plan artefactos cotidianos
Plan de clase 2° plan artefactos cotidianosPlan de clase 2° plan artefactos cotidianos
Plan de clase 2° plan artefactos cotidianosMañe Contreras
 
Proyecto de robótica en el colegio "El Redín"
Proyecto de robótica en el colegio "El Redín"Proyecto de robótica en el colegio "El Redín"
Proyecto de robótica en el colegio "El Redín"proyectoste
 
Guía de clase áreas y perímetros utilizando las Tics
Guía de clase áreas y perímetros utilizando las TicsGuía de clase áreas y perímetros utilizando las Tics
Guía de clase áreas y perímetros utilizando las TicsYoe Lopez
 
Proyecto "me divierto, aprendo y aplico las fracciones ne el mundo de las tics"
Proyecto "me divierto, aprendo y aplico las fracciones ne el mundo de las tics"Proyecto "me divierto, aprendo y aplico las fracciones ne el mundo de las tics"
Proyecto "me divierto, aprendo y aplico las fracciones ne el mundo de las tics"REAL COLEGIO SAN JOSE
 
Mi amigo Robótico
Mi amigo RobóticoMi amigo Robótico
Mi amigo RobóticoCodemás
 

Tendances (11)

ESTRATEGIAS PARA UN MEJOR DESARROLLO DE LA GEOMETRÍA Y ESTADISTICA
ESTRATEGIAS PARA UN MEJOR DESARROLLO DE LA GEOMETRÍA Y ESTADISTICAESTRATEGIAS PARA UN MEJOR DESARROLLO DE LA GEOMETRÍA Y ESTADISTICA
ESTRATEGIAS PARA UN MEJOR DESARROLLO DE LA GEOMETRÍA Y ESTADISTICA
 
Presentación de propuesta
Presentación  de propuestaPresentación  de propuesta
Presentación de propuesta
 
Maquinas monofuncionales
Maquinas monofuncionalesMaquinas monofuncionales
Maquinas monofuncionales
 
El juego como medio para aprender matemática
El juego como medio para aprender matemáticaEl juego como medio para aprender matemática
El juego como medio para aprender matemática
 
Las matematicas del viaje - Trabajo por proyectos (PBL)
Las matematicas del viaje - Trabajo por proyectos (PBL) Las matematicas del viaje - Trabajo por proyectos (PBL)
Las matematicas del viaje - Trabajo por proyectos (PBL)
 
Plan de clase 2° plan artefactos cotidianos
Plan de clase 2° plan artefactos cotidianosPlan de clase 2° plan artefactos cotidianos
Plan de clase 2° plan artefactos cotidianos
 
Proyecto de robótica en el colegio "El Redín"
Proyecto de robótica en el colegio "El Redín"Proyecto de robótica en el colegio "El Redín"
Proyecto de robótica en el colegio "El Redín"
 
Guía de clase áreas y perímetros utilizando las Tics
Guía de clase áreas y perímetros utilizando las TicsGuía de clase áreas y perímetros utilizando las Tics
Guía de clase áreas y perímetros utilizando las Tics
 
Proyecto "me divierto, aprendo y aplico las fracciones ne el mundo de las tics"
Proyecto "me divierto, aprendo y aplico las fracciones ne el mundo de las tics"Proyecto "me divierto, aprendo y aplico las fracciones ne el mundo de las tics"
Proyecto "me divierto, aprendo y aplico las fracciones ne el mundo de las tics"
 
Protocolo de plan de clase ing pinos
Protocolo de plan de clase ing pinosProtocolo de plan de clase ing pinos
Protocolo de plan de clase ing pinos
 
Mi amigo Robótico
Mi amigo RobóticoMi amigo Robótico
Mi amigo Robótico
 

En vedette

Bucles de sonido en android con pygame
Bucles de sonido en android con pygameBucles de sonido en android con pygame
Bucles de sonido en android con pygameIvan Dragogear
 
Realidad skraach 01 El Tributo
Realidad skraach  01 El TributoRealidad skraach  01 El Tributo
Realidad skraach 01 El TributoIvan Dragogear
 
Realidad Skraach – 02 La Aprendiz Nocturna
Realidad Skraach – 02 La Aprendiz NocturnaRealidad Skraach – 02 La Aprendiz Nocturna
Realidad Skraach – 02 La Aprendiz NocturnaIvan Dragogear
 
[..Software IDG..] Colisiones e intersecciones entre rectas y segmentos
[..Software IDG..] Colisiones e intersecciones entre rectas y segmentos[..Software IDG..] Colisiones e intersecciones entre rectas y segmentos
[..Software IDG..] Colisiones e intersecciones entre rectas y segmentosIvan Dragogear
 
[..Tuto ..] pygame: re dimensionar ventana y pantalla de videojuegos
[..Tuto ..] pygame: re dimensionar ventana y pantalla de videojuegos[..Tuto ..] pygame: re dimensionar ventana y pantalla de videojuegos
[..Tuto ..] pygame: re dimensionar ventana y pantalla de videojuegosIvan Dragogear
 
[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalación
[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalación[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalación
[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalaciónIvan Dragogear
 
Boccaccio. El Decamerón
Boccaccio. El DecamerónBoccaccio. El Decamerón
Boccaccio. El DecamerónMaría Díaz
 

En vedette (8)

Bucles de sonido en android con pygame
Bucles de sonido en android con pygameBucles de sonido en android con pygame
Bucles de sonido en android con pygame
 
Realidad skraach 01 El Tributo
Realidad skraach  01 El TributoRealidad skraach  01 El Tributo
Realidad skraach 01 El Tributo
 
Realidad Skraach – 02 La Aprendiz Nocturna
Realidad Skraach – 02 La Aprendiz NocturnaRealidad Skraach – 02 La Aprendiz Nocturna
Realidad Skraach – 02 La Aprendiz Nocturna
 
[..Software IDG..] Colisiones e intersecciones entre rectas y segmentos
[..Software IDG..] Colisiones e intersecciones entre rectas y segmentos[..Software IDG..] Colisiones e intersecciones entre rectas y segmentos
[..Software IDG..] Colisiones e intersecciones entre rectas y segmentos
 
[..Tuto ..] pygame: re dimensionar ventana y pantalla de videojuegos
[..Tuto ..] pygame: re dimensionar ventana y pantalla de videojuegos[..Tuto ..] pygame: re dimensionar ventana y pantalla de videojuegos
[..Tuto ..] pygame: re dimensionar ventana y pantalla de videojuegos
 
[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalación
[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalación[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalación
[..Tuto..] Pgs4a-0.9.4 en Ubuntu 12.04 precise instalación
 
Choques y-colisiones
Choques y-colisionesChoques y-colisiones
Choques y-colisiones
 
Boccaccio. El Decamerón
Boccaccio. El DecamerónBoccaccio. El Decamerón
Boccaccio. El Decamerón
 

Similaire à Colisiones 2D: introducción

Algoritmos basicos de dibujo en 2 d
Algoritmos basicos de dibujo en 2 dAlgoritmos basicos de dibujo en 2 d
Algoritmos basicos de dibujo en 2 dUDEC
 
Utp va_s9 filtrado de imagenes
 Utp va_s9 filtrado de imagenes Utp va_s9 filtrado de imagenes
Utp va_s9 filtrado de imagenesjcbenitezp
 
Unidad didactica Luz Nicasio
Unidad didactica  Luz NicasioUnidad didactica  Luz Nicasio
Unidad didactica Luz Nicasioluxsegura
 
Introducción a Unity 5 - Conceptos básicos de los videojuegos
Introducción a Unity 5 - Conceptos básicos de los videojuegosIntroducción a Unity 5 - Conceptos básicos de los videojuegos
Introducción a Unity 5 - Conceptos básicos de los videojuegosJuan Gabriel Gomila Salas
 
Guía de programacion de videojuegos II
Guía de programacion de videojuegos IIGuía de programacion de videojuegos II
Guía de programacion de videojuegos IIFreelance
 
Graficos de Funciones en Visual Basic subido JHS
Graficos de Funciones en Visual Basic subido JHSGraficos de Funciones en Visual Basic subido JHS
Graficos de Funciones en Visual Basic subido JHSjohnny herrera
 
Funcion cuadratica
Funcion cuadraticaFuncion cuadratica
Funcion cuadraticafull clean
 
Transformgeometricas
TransformgeometricasTransformgeometricas
Transformgeometricasjcbp_peru
 

Similaire à Colisiones 2D: introducción (12)

Algoritmos basicos de dibujo en 2 d
Algoritmos basicos de dibujo en 2 dAlgoritmos basicos de dibujo en 2 d
Algoritmos basicos de dibujo en 2 d
 
Colisiongambas2
Colisiongambas2Colisiongambas2
Colisiongambas2
 
Utp va_s9 filtrado de imagenes
 Utp va_s9 filtrado de imagenes Utp va_s9 filtrado de imagenes
Utp va_s9 filtrado de imagenes
 
GRUPO 7 - AFC.pptx
GRUPO 7 - AFC.pptxGRUPO 7 - AFC.pptx
GRUPO 7 - AFC.pptx
 
Unidad didactica Luz Nicasio
Unidad didactica  Luz NicasioUnidad didactica  Luz Nicasio
Unidad didactica Luz Nicasio
 
Introducción a Unity 5 - Conceptos básicos de los videojuegos
Introducción a Unity 5 - Conceptos básicos de los videojuegosIntroducción a Unity 5 - Conceptos básicos de los videojuegos
Introducción a Unity 5 - Conceptos básicos de los videojuegos
 
Graficos por Computadora (2)
Graficos por Computadora (2)Graficos por Computadora (2)
Graficos por Computadora (2)
 
Guía de programacion de videojuegos II
Guía de programacion de videojuegos IIGuía de programacion de videojuegos II
Guía de programacion de videojuegos II
 
Graficos de Funciones en Visual Basic subido JHS
Graficos de Funciones en Visual Basic subido JHSGraficos de Funciones en Visual Basic subido JHS
Graficos de Funciones en Visual Basic subido JHS
 
Teoria dibujo técnico
Teoria dibujo técnicoTeoria dibujo técnico
Teoria dibujo técnico
 
Funcion cuadratica
Funcion cuadraticaFuncion cuadratica
Funcion cuadratica
 
Transformgeometricas
TransformgeometricasTransformgeometricas
Transformgeometricas
 

Colisiones 2D: introducción

  • 1. Colisiones 2D: Introducción Por: José Iván González Torres http://ingenieria-dragogear.blogspot.mx/
  • 2. 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.
  • 3. 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.
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. ¿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.
  • 11. 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.
  • 12. Una comparación de los sistemas de colisión y sus combinaciones.
  • 13. Juego sencillo sistema de colisiones sencillo.