Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///draw shadows
- //manage surface
- if(surface_exists(surf_shadow)){
- surface_set_target(surf_shadow);
- draw_clear_alpha(0, 0);
- }else{
- surf_shadow = surface_create(room_width,room_height);
- surface_set_target(surf_shadow);
- }
- //handle every shadow in the room
- with(o_5_char_shadow){
- if(parent>-1){
- if(instance_exists(parent)){
- if(parent.visible){
- //transformation points
- var px = parent.x;
- var py = parent.y;
- var w = sprite_get_width(parent.sprite_index)*global.zoom;
- var h = parent.footground*global.zoom;
- var wd = 50; //horizontal iclination
- var hd = h/1.5; //vertical inclination
- var xoff = (sprite_get_xoffset(parent.sprite_index)+1)*global.zoom;
- var yoff = parent.sprite_height-(parent.footground+1)*global.zoom;
- //check if there's the necessity of duplicating a new sprite
- if(parent.sprite_index!=last_sprite){
- //delete previous duplicated sprite
- if(sp!=-1) sprite_delete(sp);
- //create new duplicated sprite
- sp = sprite_duplicate(parent.sprite_index);
- sprite_collision_mask(sp,false, 1, 0, 0, 0, 0, 1, 0);
- last_sprite = parent.sprite_index;
- }
- sprite_index = sp;
- //draw skewed sprite
- draw_sprite_pos(sprite_index,
- parent.image_index,
- px+wd-xoff,
- py+h+hd,
- px+w+wd-xoff,
- py+h+hd,
- px+w-xoff,
- py+h-yoff,
- px-xoff,
- py+h-yoff,
- 1);
- }
- }else{
- instance_destroy();
- }
- }
- }
- //reset drawing target
- surface_reset_target();
- //draw the modified shadow sprites with black blending color and 20% alpha
- draw_surface_ext(surf_shadow, 0, 0, 1, 1, 0, c_black, 0.1);
Advertisement
Add Comment
Please, Sign In to add comment