Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ledillman en Noviembre 01, 2012, 03:49:49 AM

Título: Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: ledillman en Noviembre 01, 2012, 03:49:49 AM
Buenas, estoy haciendo una bola de plasma, que gira, y al contacto con el suelo esta se destruye, y al destruirse quiero que dependiendo donde esta el objeto solido(o suelo) tenga distinto sprite.

La bola es redonda, y al contacto con ese suelo, quiero que, si el suelo esta abajo, ponga un bojeto con sprite donde la mitad de la bola este cortada y mirando hacia arriba, como pegada al suelo, me explico? entonces, quiero hacer que detecte si el piso solido esta abajo para hacer ese sprite, y si esta a la derecha otro objeto que se vea como que mira a la derecha, y otro si esta arriba para que mire hacia abajo, no se si me explico?
Título: Re:Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: Texic en Noviembre 01, 2012, 06:11:58 AM
En el evento collision usá point_direction(x,y,other.x,other.y) para saber la dirección en la que se encuentra el objeto contra el q colisionó. Para ahorrarte chequeos extensivos podés tomar el seno y coseno de ese ángulo y redondearlos con round(), luego determinás el ángulo según los resultados de seno y coseno. Si el seno dio 1 o -1 es arriba o abajo, si el coseno dio 1 o -1 es derecha o izquierda respectivamente
Título: Re:Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: ledillman en Noviembre 01, 2012, 07:45:27 PM
Me gustaria que me pudieras explicar mejor la opcion que me diste para ver si obtengo lo que quiero
Título: Re:Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: Texic en Noviembre 02, 2012, 08:03:29 PM
Acá tengo el ejemplo, la bola detecta hacia que lado está el objeto con el que colisiona y dibuja una flecha
http://dl.dropbox.com/u/18232060/dirr.gmk (http://dl.dropbox.com/u/18232060/dirr.gmk)
Título: Re:Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: ledillman en Noviembre 02, 2012, 08:34:39 PM
gracias! te pasaste sos un cra'!  ;D

Una cosa, cuando intento adaptarlo a mi juego, aparece esto:

___________________________________________
ERROR in
action number 1
of Collision Event with object FAs
for object PRUEBA:

Error in code at line 1:
   dir=point_direction(x,y,other.x,other.y)
                                ^
at position 31: Unknown variable x


En este caso PRUEBA es mi objeto, y FAs es el piso, que podria estar haciendo mal?
Título: Re:Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: Texic en Noviembre 02, 2012, 08:59:03 PM
Unknown variable x? Destruiste el objeto FA's o PRUEBA antes en el evento de colisión con alguna función?
Título: Re:Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: ledillman en Noviembre 02, 2012, 09:50:11 PM
Pues, destruia el objeto PRUEBA, pero despues del codigo y colisionar contr ale piso (FAs), ahora le quite eso y me manda el mismo error, pero en otra posicion:

Error in code at line 1:
   dir=point_direction(x,y,other.x,other.y)
                                                    ^
at position 31: Unknown variable x

Ahora es en other.x no en la primera x, quizas sea lo mismo  :-[

Título: Re:Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: Texic en Noviembre 02, 2012, 10:45:05 PM
En algún punto tu objeto FAs se destruye, buscalo, el código tiene q ir antes de q FAs se destruya
Título: Re:Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: ledillman en Noviembre 03, 2012, 01:12:31 AM
Ya revise Texic, y estoy seguro, no elimino el piso en ningun momento ni nada  :-\
Título: Re:Verificar suelo (Arriba, Abajo, Derecha, Izquierda)
Publicado por: Texic en Noviembre 03, 2012, 01:20:55 AM
A ver pasa editable y reviso, no me acuerdo qué más podía causar ese error. También lo causa desactivar los objetos pero no creo q lo hagas