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 :-[

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.

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