Então, o ideal mesmo era você criar uma nova cena (fora da
Scene_Map) para rodar seu código e, ao invés de congelar o mapa, usar o método
SceneManager.background_bitmap, que te dá um
Bitmap de como a tela estava na hora em que a
Scene_Map foi terminada (para ir para a sua cena, no caso). Com isso você tem o mesmo efeito visto na cena de menu, por exemplo.
O que talvez seja um problema é que fica tudo meio embaçado. Caso a imagem estar focada seja um requisito para o seu script, você pode criar um procedimento que salve a tela sem chamar a função
Bitmap#blur.
Fiz um treco rapidinho aqui, ele salva na variável
$background_bitmap_noblur um bitmap com a tela sem embaçar (Cole acima do main):
Código:
class Scene_Map
alias noblur_background_bitmap_terminate terminate
def terminate
noblur_background_bitmap_terminate
$background_bitmap_noblur.dispose if $background_bitmap_noblur
$background_bitmap_noblur = Graphics.snap_to_bitmap
end
end
Pra colocar a imagem na tela é só criar um
Sprite na posição (0, 0) com Z bem baixo (pode ser negativo) e passar o bitmap pra ele:
Código:
bg_sprite = Sprite.new
bg_sprite.z = -1
bg_sprite.bitmap = $background_bitmap_noblur