Colisión irregular

Consulte acerca de programas, técnicas, algoritmos etc.

Colisión irregular

Notapor Ezequiel Pereira » Lun Abr 15, 2013 1:18 am

Quisiera saber, tengo un mapa irregular en un videojuego que estoy haciendo y quisiera saber cual seria la mejor forma de detectar colisiones al moverse hacia arriba, abajo, a los costados y en diagonal (Solo para saber porque este quizá lo implemente en algún momento).
También alguna forma de que el personaje al caminar mientras se choca contra una pared se "deslice" hacia algún otro lado que si esté disponible.

Si usan ejemplos, me servirían para aplicarlos en C++.
Avatar de Usuario
Ezequiel Pereira
 
Mensajes: 21
Registrado: Vie Dic 28, 2012 1:51 am
Ubicación: Montevideo, Uruguay

Re: Colisión irregular

Notapor Barajas » Lun Abr 15, 2013 3:43 am

Te recomiendo que le des una mirada a esta serie de tutoriales sobre juegos en base a tiles, no sé si te sirvan, y a falta de que no se que tan "irregulares" sean las colisión que quieres hacer...

http://www.tonypa.pri.ee/tbw/start.html ("hit the wall" es la que te interesaría)
Vi veri universum vivus vici
Avatar de Usuario
Barajas
 
Mensajes: 209
Registrado: Mar Nov 16, 2010 12:06 am

Re: Colisión irregular

Notapor Ezequiel Pereira » Lun Abr 15, 2013 12:28 pm

No es exactamente lo que buscaba, yo con mapas irregulares me refiero a que no tienen una forma especifica, en una imagen el color negro indica que no se puede pasar y los otros sí.
Uno de los mapas de mi juego es este:
Imagen

Y el problema es que el personaje camina como muy trancado si se aproxima a una pared o en ocasiones atravesarla:
Imagen

Dejo mi "jueguito" para que se vea bien lo que pasa por si no se entiende.
Avatar de Usuario
Ezequiel Pereira
 
Mensajes: 21
Registrado: Vie Dic 28, 2012 1:51 am
Ubicación: Montevideo, Uruguay

Re: Colisión irregular

Notapor Barajas » Mar Abr 16, 2013 1:47 am

En ese caso, hay 3 tipos posibles de colisiones:

BitMask:

Imagen

Slopes:

Imagen

Vectorial:

ImagenImagen

En el articulo donde se mencionan, esta enfocado a juegos de plataformas, pero aun así sigue siendo un espacio 2D, vienen estos métodos (debajo de los métodos de tiles) http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/

Espero que te sirva :)
Vi veri universum vivus vici
Avatar de Usuario
Barajas
 
Mensajes: 209
Registrado: Mar Nov 16, 2010 12:06 am

Re: Colisión irregular

Notapor Ezequiel Pereira » Mar Abr 16, 2013 9:33 pm

Gracias :) .
Resulta que lo que más me sirve esta en los tiles :wink: .
Avatar de Usuario
Ezequiel Pereira
 
Mensajes: 21
Registrado: Vie Dic 28, 2012 1:51 am
Ubicación: Montevideo, Uruguay

Re: Colisión irregular

Notapor shackra » Jue May 16, 2013 6:19 am

Yo te recomendaría que no reinventes la rueda haciendo tu motor de colisiones y uses lo que ya existe, usa Chipmunk, acá podes encontrar los bindings en C++ de Chipmunk: http://bixense.com/chipmunkpp/, te ayudara darle un vistazo a la documentación.

Saludos y recuerda: Evita reinventar la rueda siempre que puedas.
Avatar de Usuario
shackra
 
Mensajes: 308
Registrado: Lun Jun 15, 2009 4:10 pm
Ubicación: Costa Rica


Volver a General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado