Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ferhand en Enero 16, 2012, 03:43:44 PM

Título: Problema con Chequeo de Colisiones Precisas 2D
Publicado por: ferhand en Enero 16, 2012, 03:43:44 PM
Hola Makeros:

Me ha surgido un problema.

Tengo un objeto que no tiene asociado ning?n "sprite" de la manera convencional.

Este objeto se mueve como un autom?vil, siempre hacia adelante (o hacia atr?s), con la posibilidad de rotar.

En su evento "draw", dibuja un "sprite" en su posici?n (x,y) y con su ?ngulo (direction).

El problema es que no se como hacer para que colisione correctamente.

De la forma descrita anteriormente, no colisiona en lo absoluto. Si ?l "sprite" que dibuja se lo asocio de manera convencional, colisiona pero no rota la figura invisible de colisi?n (mask), sin tener una m?scara asociada.

Pregunta: ?C?mo puedo tener un "sprite" que rote para realizar una colisi?n precisa aunque este "sprite" no sea sim?trico?

Muchas gracias y espero respuesta...
Título: Re: Problema con Chequeo de Colisiones Precisas 2D
Publicado por: elviskelley en Enero 16, 2012, 03:47:23 PM
usa esto.
collision_circle(xc,yc,radius,obj,prec,notme) Comprueba si hay una colisi?n  entre la circunferencia (s?lido) con centro (xc,yc) y radio r e  instancias del objeto obj. Puedes usar esta funci?n para ver si un objeto est? cerca de una posici?n.
Título: Re: Problema con Chequeo de Colisiones Precisas 2D
Publicado por: ferhand en Enero 16, 2012, 04:08:01 PM
Hola Makero elviskelley:

Disculpa las molestias, pero eso ya lo prob?.

La forma de resolverlo es pasando el "sprite" de manera convencional, o sea, sin utilizar el evento "draw" y cambiarle los ?gulos al "sprite" con la variable "image_angle". De esta forma s? colisiona como quiero, pero...

Omit? que tambi?n quiero dibujar en el centro de dicho objeto otro "sprite" que no colisionar?,tendr? otras funciones.

Si agrego el evento "draw" puedo dibujarlo, pero las colisiones que quer?a dejen de funcionar bien por la raz?n de que el "sprite" de colision deja de rotar. Rota el que vemos, pero no el que colisiona.

Tambi?n prob? a mostrar otro objeto en la posici?n deseada con ese "sprite" que me faltaba por mostrar, pero cuando se mueve el objeto que colisiona (el de abajo), se demora en ubicarse el otro nuevo objeto (el de arriba).

El de abajo se mueve, y el otro lo sigue pero algo m?s lento. Se nota que no son la misma estructura.
Título: Re: Problema con Chequeo de Colisiones Precisas 2D
Publicado por: Jucarave en Enero 16, 2012, 04:24:20 PM
Simplemente a?ade el mismo sprite como mascara de colisi?n, y listo la mascara tambi?n rotara con el sprite y lograras tu colisi?n.


A mi me funciono.


Saludos.
Título: Re: Problema con Chequeo de Colisiones Precisas 2D
Publicado por: ferhand en Enero 16, 2012, 04:35:38 PM
Hola Makero elviskelley y Jucarave:

Lo de a?adir el "sprite" como m?scara de colisi?n no me funcion? pues ten?a un evento dibujo en el objeto. Cuando tienes un evento "draw" el GM se gu?a por lo se dibuja y no por el "sprite" que se pas? de forma convencional. y L a m?scara no rota en ese momento.

Muchas gracias por ayudar, nuevamente. ?Ya resolv? el problema!

Cre? otro objeto que no se ve. ?l solamente dibuja un "sprite" sobre el objeto de las colisiones. El evento dibujar est? en este objeto invisible y no en el de las colisiones, por lo que se comportan como quiero:

1- las colisiones son precisas y rotan.
2- el otro "sprite" se ve como si formara parte de la estructura. Sin ralentizar el dibujo.

Muchas gracias elviskelley, dentro de poco tendr?n un nuevo juego en construcci?n.  ;)
Título: Re: Problema con Chequeo de Colisiones Precisas 2D
Publicado por: Jucarave en Enero 16, 2012, 04:47:15 PM
Solo para aclarar ;)

Es verdad que cuando a?ades el evento de Draw, se ignora el sprite que tu hayas a?adido, sin embargo, si tu a?ades una "mascara de colision" entonces funcionara perfectamente, como te dije a mi me funciono.


Cuando digo mascara de colisi?n, no me refiero al sprite si no a esto:

(http://i195.photobucket.com/albums/z57/jucarave/mascara.jpg)

De todos modos si ya lo resolviste, esta genial.


Saludos 8)
Título: Re: Problema con Chequeo de Colisiones Precisas 2D
Publicado por: ferhand en Enero 16, 2012, 05:57:51 PM
Gracias Makero Jucarave:

S?, es a eso mismo a lo que me refer?a tambi?n y no me funcionaba. O sea:

Ten?a un evento "draw" y tambi?n ten?a marcada la opci?n que me muestras y no rotaba la m?scara de colisi?n. Colisionaba como si el "sprite" no hubiera rotado nada.

Muchas gracias Makero Jucarave.