We both did a bit of investigation and turns out Kaiser's machine happens to be a rare case where for who-knows-why the functions background_create_from_screen and sprite_create_from_screen do not work, resulting in unresponsiveness and occasionally a GM error stating that my background/sprite variable does not exist.
What does this mean? Well for those who don't know (most devs in this subforum that use GM either know of this command and/or use it) and can't figure it out for themselves, it creates a sprite/background from the current view on the screen for manipulation purposes. The best use this has seen on this forum has been for Pause menus using instance_deactivate_xxx functions (which make objects disappear as a result) to give an impression that everything in-game has stood still.
That's a pretty damn important function IMO and despite its rarity I looked around for alternate methods of doing the same thing. Eventually I found a thread on Yoyogames (which I subsequently lost the link for) where a user had the same experience and the solution suggested was this:
Code: Select all
/* DO NOT USE IN DRAW EVENT (can be used in Create/Step/etc) */
surf=surface_create(view_wview,view_hview);
surface_set_target(surf);
draw_clear_alpha(c_black,1);
screen_redraw();
surface_reset_target();
p = sprite_create_from_surface(surf,0,0,view_wview,view_hview,false,false,0,0);
surface_free(surf);
I've blabbed on enough, but suffice to say this bit of code fixed Kaiser's issue and I'm making this thread so that it's documented. I'm putting it in as an optional pause screen rendering method in GMOSSE soon and I think in the interests of maximum compatibility everyone here using background_create_from_screen should do the same and provide it as an alternative.