T2008
Member
Edit: After several attempts to fix, I realized that the problem is related to the Lighting System 2d that I got from Spalding (with shaders, etc) is the problem (my code below works). It doesn't work with changing rooms. Anyone try to implement Spalding's light system and get it to work with change rooms?
I'm drawing black surface and light sprite for torch. The problem is when I leave the room, it looks fine in adjacent room but when I return to original room, it doubles the black area to be super dark. I have no idea why. I place an obj_light_controller in each room, and torch creates object light.
I tried draw_clear_alpha(c_white,0) and that didn't work.
Edit: The doubling, etc appears in the room first created but not subsequent rooms.
Any ideas would be greatly appreciated!!!
Object Light Create Event:
Object Light Step Event (light size):
Object Light Draw Event:
I'm drawing black surface and light sprite for torch. The problem is when I leave the room, it looks fine in adjacent room but when I return to original room, it doubles the black area to be super dark. I have no idea why. I place an obj_light_controller in each room, and torch creates object light.
I tried draw_clear_alpha(c_white,0) and that didn't work.
Edit: The doubling, etc appears in the room first created but not subsequent rooms.
Any ideas would be greatly appreciated!!!
Object Light Create Event:
Code:
surf = surface_create(room_width,room_height);
surfScale = 1/8; //scaling light to appropriate size of room
lightSize = 6;
lightStrength = 1; //alpha of light (0 to 1)
Code:
var z = choose(.1,-.1,0);
lightSize += z;
lightSize = clamp(lightSize,6,8); //don't want it under 6 or over 8
Code:
surface_set_target(surf);
draw_clear(c_black);
//Torch Light
if (global.torch_on) {
with(obj_light1)
{
draw_set_blend_mode(bm_src_color);
draw_sprite_ext(spr_light,0,((obj_player.x - 34) + (obj_player.sprite_width/2))*other.surfScale,((obj_player.y - 50) + (obj_player.sprite_height/2))*other.surfScale,lightSize*other.surfScale,lightSize*other.surfScale,0,c_white,lightStrength);
draw_set_blend_mode(bm_normal);
}
}
surface_reset_target();
//Draw Surface
draw_surface_ext(surf,0,0,1/surfScale,1/surfScale,0,c_white,.5);
Last edited: