Buenas, quería saber si hay alguna forma de usar DRAW para dibujar cosas pero por debajo de los objetos, o sea, que no quede siempre al frente de todo, como para decirlo de alguna manera poder manejar el depth entre objetos que hay en la room y lo que se dibuja con draw.

#1 Septiembre 20, 2014, 02:07:01 AM Ultima modificación: Septiembre 20, 2014, 02:10:44 AM por penumbra
depth sirve para eso, no sé qué es lo que quieras hacer, pero si quieres que el jugador quede tapado por un árbol, al árbol le das una profundidad menor a la del jugador o al jugador una profundidad mayor que la del árbol. También se puede usar un objeto controlador que dibuje en el orden deseado las cosas deseadas. Por ejemplo, desde el objeto controlador
[gml]
with(obj_player)
    draw_self()

with (obj_arbol)
     draw_self()[/gml]

Para que funcione correctamente hay que evitar que tanto el árbol como el jugador dibujen automáticamente su sprite, lo que se hace por ejemplo, poniendo un evento DRAW en esos objetos y dejando el evento vacío.

Antes que nada gracias por la respuesta, por ahí me expresé mal, lo que yo quiero saber es si por ejemplo, supongamos que quiero un círculo en el fondo de la room, en vez de hacer un background con ese círculo dibujado o poner un objeto, podría hacerlo con draw_circle sin que este me tape al jugador? es eso lo que me pasa, dibujo cosas pero tapan a las cosas mas importantes del juego, como el jugador, enemigos, etc.

Haaaa entoncea a ese obj dale un depth= 500 que lo mandara al fondo -500 arriba y 0 en el centro por decir asi
Saludos .

#4 Septiembre 20, 2014, 02:26:23 AM Ultima modificación: Septiembre 20, 2014, 05:40:55 AM por penumbra
Una manera es que un objeto controlador dibuje al jugador y al círculo (y que el jugador no se dibuje a sí mismo, como mencioné en el mensaje anterior). Pimero dibujaría el círculo y luego al jugador, lo que haría que el jugador siempre quedara encima..

Otra manera que yo nunca he probado, pero que creo que funcionaría es usar el evento Draw Begin para cosas que quieras que se dibujen debajo y DRAW END para cosas que se dibujen encima. Por ejemplo, el blog de YoYo meciona  que es posible usar DRAW BEGIN para dibujar las sombras de los objetos, DRAW normal para dibujar objetos y DRAW END para dibujar efectos especiales.

recuerda que todo codigo tiene un orden de lectura, hay veces en que cosas así se resuelven simplemente con la posición en la lista de los objetos, o en el orden en el que pones el código, me parece que lo último que dibuja va delante de lo primero.

Por ejemplo, si haces un ciculo azul y luego escribes uno amarillo en el mismo lado, se verá el amarillo delante, y si lo pones al revés, pues se verá el azul :P

Espero que te ayude eso, lo mismo pasa con los objetos, si los pones más arriba o más abajo de la lista, yo una vez resolví un problema parecido así.

PD: y con el draw no sirve el depth? he de mirarlo =_=
PD2: personalmente, yo he probado GMS y he tenido muchísimos problemas parecidos, sinceramente, no me gusta nada esa versión, me quedo con GM8.0 4life :D
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Si queres el circulo en el fondo-fondo,entonces conviene que el jugador se dibuje a si mismo con su depth y el circulo, lo dibuje otro objeto con otro depth mas profundo.