Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Colisiones

Iniciado por Forum Master, 14 de Julio de 2003, 02:19:19 AM

« anterior - próximo »

Forum Master

 A ver tengo este problema. Digamos que estoy haciendo el Pang... (ganchos que suben desde el suelo para romper pompas que rebotan).

El problema que tengo es que haga lo que haga siempre hay alguna pompa que consigue colisionar sin colisionar realmente (vamos que veo en la pantalla que la bola esta encima del gancho pero lo que yo he hecho para las colisiones no lo detecta). Se que el problema no es que el gancho sea por ejemplo una columna de un pixel y en un momento la burbuja esta en un lado y en el siguiente esta en el otro porque iba muy rapido, pero el caso es que no consigo hacerlo funcionar.

Os explico brevemente que es lo que yo hago y a ver si teneis ideas mejores de como afrontar mi problema :)


XB = Coordenada X de la Bola
YB = Coordenada Y de la Bola
XG = Coordenada X del Gancho
YG = Coordenada Y del Gancho
R = Radio Bola
A = Ancho Gancho
H = Altura Gancho

Paso por todos los ganchos
      Paso por todas las bolas
             Si d(XG,XB) <= R + A
                    Desde i=0 hasta i=H i++
                           Desde j=-A hasta j=+A j++
                                  Si R^2 >= d(XB - XG + j)^2 + (YB - i)^2
                                         Borra gancho y burbuja


El caso es que he probado de muchas maneras y esta es la mas burra que he encontrado pero que aun asi me sigue sin funcionar el 100% de las veces. No se, pero aunque esta forma me hubiera funcionado tampoco la quiero asi porque es 'muy poco estilizada'  (nooo)

Así que alguien tiene alguna idea de como hacerlo de modo elegante y que funcione? :)
tratos

samsaga2

 Veo que le hechas imaginacion a la hora de calcular las colisiones  (ole) .

Lo que debes usar es la tipica colision AABB contra Spheres. Si no te molesta aprender un poco de ruso  (twist)  mirate esto http://gdlinks.hut.ru/cdfaq/aabb.shtml#aabb-sphere (por suerte el codigo en c++ es universal :-D). Tampoco es que me haya matado mucho buscando con el google es lo primero que encontre, si buscas mas seguro que encuentras algo mas interesante y cuya explicacion pueda ser entendida por personas ajenas a conocimientos del idioma ruso. Concretamente he buscado "collision AABB sphere"

Forum Master

 Imaginacion??? Mas bien desesperacion :) Yo es que habia encontrado colisiones circulo circulo y rectangulo rectangulo :( Voy a ver si me empapo de esa web que has dicho y si no ya buscare 'collision AABB Spheres' que significa AABB??? :huh:

PD: madre mia que web en ruso, tengo que hasta quitarle los comentarios para poderme centrar  (ole)  
tratos

HgH

 
Cita de: "Forum Master"que significa AABB??? :huh:
Si no recuerdo mal "Axis Aligned Bounding Boxes"    :P  
gH _ TLOTB
..................
"No queremos estar obligados, por nada ni nadie, a pensar sólo en lo que es más comercial. Siempre seremos, antes que nada, programadores"

- Equipo de Zigurat -

fiero

www.videopanoramas.com Videopanoramas 3D player

Forum Master

  (ole) Ya está parece que prueba superada :) Muchas Gracias a todos :)
tratos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.