Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// @description room_screenshot(background_sprite, tilemap, ...)
- // Example: room_screenshots(spr_background,"tile_forest", "tile_foliage");
- // Specify sprites / tilemaps in order of lowest -> highest depth
- MAX_SIZE = 16536
- num_surf = ceil(room_width / MAX_SIZE)
- if(num_surf == 1) {
- // call old code here
- room_screenshot( ... )
- exit
- }
- // Vars
- var r = room_get_name(room);
- for(ss=0; ss<num_surf; ss++) {
- dx = -MAX_SIZE*ss
- var s = surface_create(MAX_SIZE, room_height);
- surface_set_target(s);
- // Draw arguments
- for (var i=0; i<argument_count; i++)
- {
- // Draw tilemap
- var tm = layer_tilemap_get_id(layer_get_id(argument[i]));
- draw_tilemap(tm,dx,0);
- // Draw sprite / background
- if (sprite_exists(argument[i]))
- draw_sprite(argument[i],0,dx,0);
- }
- // Draw visible objects
- with (all) {
- if ((sprite_index != -1) && (visible)) {
- x += dx
- draw_self();
- x -= dx
- }
- }
- // If any layers need to be drawn above objects, write the draw code here
- // Reset target, save, and clear surface
- surface_reset_target();
- surface_save(s, string(r) + "_" + string(ss) + ".png");
- draw_clear_alpha(c_white,0);
- surface_free(s);
- }
Advertisement
Add Comment
Please, Sign In to add comment