Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: CuervoNegro en Julio 08, 2018, 08:30:41 PM

Título: ¿Se puede dibujar una parte de una surface por abajo de una tile?
Publicado por: CuervoNegro en Julio 08, 2018, 08:30:41 PM
Buenos dias, me gustaria saber si es posible ocultar parte de una surface que esta abajo de una tile. Quiero que la luz de una antorcha no se vea por encima del puente, como se muestra en la imagen. La tile del puente tiene diferente profundidad. La verdad es que no tengo mucha experiencia usando surfaces :-[
(http://i65.tinypic.com/5xooix.png)
Título: Re:¿Se puede dibujar una parte de una surface por abajo de una tile?
Publicado por: 3dgeminis en Julio 09, 2018, 08:48:29 AM
Si has usado algun programa de edicion de imagenes veras que se pueden usar capas, cada una a diferente profundidad para crear una imagen.
En GM cambias el depth para hacer que un objeto se muestre por encima o por abajo de otro, un objeto con mayor depth estara por debajo de otro con menor depth. Esto tambien trabaja con los tiles en el room.
En Game Maker 2 me parece que se usan Layers, pero como no lo uso no se bien como funcionan.
Título: Re:¿Se puede dibujar una parte de una surface por abajo de una tile?
Publicado por: CuervoNegro en Julio 09, 2018, 09:41:42 PM
Cada antorcha tiene un codigo como este:

  gpu_set_blendmode(bm_subtract);
  surface_set_target(xlight)
  draw_ellipse_colour(x-size/2,y -size/2,x +size/2,y +size/2,c1,c2,0)
  surface_reset_target()
  gpu_set_blendmode(bm_normal);

El cual dibuja una ellipse, en una surface que cree llamada "xlight"


y luego tengo otro objeto que dibuja la surface total, que seria la suma de todo lo que dibujaron las antorchas:

gpu_set_blendmode(bm_subtract);
ww=1024/2
hh=768/2
draw_surface(xlight,x-ww,y-hh)
gpu_set_blendmode(bm_normal);

El problema es que puedo cambiar el depth del objeto que dibuja la surface, pero esto afectaría a todas las antorchas