Game Maker: Screenshots aanpassen

Door de volgende drie scripts te gebruiken kunt u screenshots maken en deze aanpassen voordat u ze opslaat in een bestand. De eerste twee scripts beginnen de productie van een screenshot, het laatste script voltooit deze productie. Tussen de uitvoering van het beginscript en het eindscript wordt alles wat u tekent op het screenshot getekend.

Om te beginnen zijn dit de scripts:

// Scriptnaam: screen_save_begin
var width, height, background;
width = window_get_width();
height = window_get_height();
global.__screenshotid = surface_create(width, height);
surface_set_target(global.__screenshotid);
background = background_create_from_screen(0, 0, width, height,
                                           false, false, true);
draw_background(background, 0, 0);
background_delete(background);
// Scriptnaam: screen_save_begin_part
var background;
global.__screenshotid = surface_create(argument0, argument1);
surface_set_target(global.__screenshotid);
background = background_create_from_screen(argument0, argument1, argument2, argument3,
                                           false, false, true);
draw_background(background, 0, 0);
background_delete(background);
// Scriptnaam: screen_save_end
surface_save(global.__screenshotid, argument0);
surface_free(global.__screenshotid);
surface_reset_target();

Het script screen_save_begin heeft geen argumenten. Het script screen_save_begin_part is een alternatief voor screen_save_begin en maakt het screenshot alleen van een bepaald gedeelte van het scherm, en heeft derhalve als argumenten achtereenvolgens de x- en y-coördinaat van de linkerbovenhoek en de breedte en hoogte van het gedeelte van het scherm waarvan het screenshot moet worden gemaakt. Het script screen_save_end heeft één argument, namelijk de bestandsnaam (eventueel inclusief pad) waaronder het screenshot moet worden opgeslagen (als bitmapbestand).

In feite hebben we het hier over een eenvoudige toepassing van surfaces. Omdat het scherm niet rechtstreeks naar de surface kan worden gekopiëerd, wordt van het scherm eerst een tijdelijke background gemaakt die vervolgens op de surface wordt getekend.

Hieronder een voorbeeld van hoe u deze scripts kunt gebruiken:

screen_save_begin();
draw_text(10, 10, "Screenshot © 2008 maker van het spel");
screen_save_end("screenshot.bmp");

Merk op dat deze scripts geen beveiliging zijn: er kunnen nog steeds onaangepaste screenshots worden gemaakt. Deze tutorial is vooral bedoeld als voorbeeld van wat u met surfaces kunt doen.

0 reacties

Voeg een reactie toe