Hi there, I'm trying to make light sources that subtract from the "darkness" surface, however it seems like they aren't working. Here's the code:
Main darkness surface code:
Create:
surface1 = -1;
surface2 = -1;
surface3 = -1;
surface4 = -1;
min_radius = 18;
radius = 20;
max_radius = 22;
expanding = true;
alarm[0] = irandom_range(80,100);
depth = -1350;
Draw Begin:
if (!surface_exists(surface1)) {
surface1 = surface_create(VIEW_WIDTH, VIEW_HEIGHT);
surface2 = surface_create(VIEW_WIDTH, VIEW_HEIGHT);
surface3 = surface_create(VIEW_WIDTH, VIEW_HEIGHT);
surface4 = surface_create(VIEW_WIDTH, VIEW_HEIGHT);
}
surface_set_target(surface1);
draw_sprite_tiled(spr_dither_overlay, 0, 0, 0);
gpu_set_blendmode(bm_subtract);
draw_circle(obj_player.x - 1, obj_player.y, radius, false);
gpu_set_blendmode(bm_normal);
surface_reset_target();
surface_set_target(surface2);
draw_sprite_tiled(spr_dither_overlay, 1, 0, 0);
gpu_set_blendmode(bm_subtract);
draw_circle(obj_player.x - 1, obj_player.y, radius + 5, false);
gpu_set_blendmode(bm_normal);
surface_reset_target();
surface_set_target(surface3);
draw_sprite_tiled(spr_dither_overlay, 2, 0, 0);
gpu_set_blendmode(bm_subtract);
draw_circle(obj_player.x - 1, obj_player.y, radius + 7, false);
gpu_set_blendmode(bm_normal);
surface_reset_target();
surface_set_target(surface4);
draw_clear(c_black);
gpu_set_blendmode(bm_subtract);
draw_circle(obj_player.x - 1, obj_player.y, radius + 10, false);
gpu_set_blendmode(bm_normal);
surface_reset_target();
Draw :
draw_surface(surface1, 0, 0);
draw_surface(surface2, 0, 0);
draw_surface(surface3, 0, 0);
draw_surface(surface4, 0, 0);
Light code:
Draw Begin:
if (surface_exists(obj_darkness_circle.surface1)) {
surface_set_target(obj_darkness_circle.surface1);
gpu_set_blendmode(bm_subtract);
draw_circle(x - 1, y, radius, false);
gpu_set_blendmode(bm_normal);
surface_reset_target();
surface_set_target(obj_darkness_circle.surface2);
gpu_set_blendmode(bm_subtract);
draw_circle(x - 1, y, radius + 5, false);
gpu_set_blendmode(bm_normal);
surface_reset_target();
surface_set_target(obj_darkness_circle.surface3);
gpu_set_blendmode(bm_subtract);
draw_circle(x - 1, y, radius + 7, false);
gpu_set_blendmode(bm_normal);
surface_reset_target();
surface_set_target(obj_darkness_circle.surface4);
gpu_set_blendmode(bm_subtract);
draw_circle(x - 1, y, radius + 10, false);
gpu_set_blendmode(bm_normal);
surface_reset_target();
}