Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: TLT96 en Junio 09, 2013, 04:36:44 AM

Título: Dos depth en un draw event
Publicado por: TLT96 en Junio 09, 2013, 04:36:44 AM
Bueno, resulta que quiero utilizar un objeto que dibuje varias cosas pero algunas con dephts diferentes, EJ:

depth=1
draw_sprite(sprite_index,image_index,x,y) //Quiero que esto se dibuje abajo, para que el personaje lo pise
depth=-1
draw_sprite(sprite_index,2,x,y) //Quiero que esto se dibuje arriba, para que sea un techo transparente para el personaje

Existe alguna manera de hacerlo con solo un objeto?
Título: Re:Dos depth en un draw event
Publicado por: Wadk en Junio 09, 2013, 05:07:32 AM
No. La depth indica el orden en que se ejecutan los eventos draw. Cambiar la depth dentro del evento draw no hace absolutamente nada hasta la próxima vez que se ejecute.
Lo más parecido que podés hacer es dibujar lo que va abajo primero y lo que va arriba después, y se dibujaría correctamente pero siempre con el mismo valor de depth.
Título: Re:Dos depth en un draw event
Publicado por: TLT96 en Junio 09, 2013, 06:52:35 PM
Cita de: Wadk en Junio 09, 2013, 05:07:32 AM
No. La depth indica el orden en que se ejecutan los eventos draw. Cambiar la depth dentro del evento draw no hace absolutamente nada hasta la próxima vez que se ejecute.
Lo más parecido que podés hacer es dibujar lo que va abajo primero y lo que va arriba después, y se dibujaría correctamente pero siempre con el mismo valor de depth.

Si, ya note que no sirve, pero no existe una manera de hacerlo?

Digamos, tengo el personaje con la depth en 0
Y una casa en depth 1

Obviamente el personaje es superior y pasa encima de la casa, pero quiero que al colisionar se active una variable

playerin=true
else
playerin=false

en el objeto draw

draw sprite (la casa, normal)

if playerin=true
draw sprite (la casa, superior con el alpha equivalente a 5)

Lo que haria es que si el personaje este en la casa , se dibuje la misma casa transparente encima de el (Pero por tener el depth en 1, el personaje sigue arriba de el)

Una forma de acomodarlo seria agregando otro object como el techo (Pero, serian muchos objects, para cada tipo de casa)

Una solucion podria ser

En el evento create o room start, que cree otro object con el mismo sprite index de la casa y con diferente alpha, se puede?

creo que es algo asi

a=instance_create(etc)
a=sprite_index=(?)

Espero la respuesta, espero que ahora la facilite un poquito :P
Título: Re:Dos depth en un draw event
Publicado por: Wadk en Junio 10, 2013, 12:30:03 AM
No termino de entender lo que estás intentando, pero me parece que lo que necesitás es simplemente poner:
[gml]depth = -x;[/gml]
en step del personaje y la casa.