本帖最后由 KB.Driver 于 2019-2-9 22:27 编辑
自己写了个暂存地图精灵组的脚本。
使用前:
进入菜单后返回,地图播放的动画消失。
使用后:
进入菜单后返回,地图动画继续播放到结束。
脚本
#============================================================================== # ■ 从地图进入菜单后,保留地图动画数据 by Calendar99 #------------------------------------------------------------------------------ # 功能如标题所说。 #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ● [别名修改]释放精灵组 #-------------------------------------------------------------------------- alias dispose_spriteset_for_pause dispose_spriteset def dispose_spriteset if SceneManager.scene_is?(Scene_Menu) # 打开菜单时 $spriteset_map = @spriteset # 暂存地图精灵组 else dispose_spriteset_for_pause # 原方法 end end #-------------------------------------------------------------------------- # ● [别名修改]生成精灵组 #-------------------------------------------------------------------------- alias create_spriteset_for_pause create_spriteset def create_spriteset if $spriteset_map @spriteset, $spriteset_map = $spriteset_map, @spriteset # 取出暂存的精灵组 else create_spriteset_for_pause # 原方法 end end end
#==============================================================================
# ■ 从地图进入菜单后,保留地图动画数据 by Calendar99
#------------------------------------------------------------------------------
# 功能如标题所说。
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# ● [别名修改]释放精灵组
#--------------------------------------------------------------------------
alias dispose_spriteset_for_pause dispose_spriteset
def dispose_spriteset
if SceneManager.scene_is?(Scene_Menu) # 打开菜单时
$spriteset_map = @spriteset # 暂存地图精灵组
else
dispose_spriteset_for_pause # 原方法
end
end
#--------------------------------------------------------------------------
# ● [别名修改]生成精灵组
#--------------------------------------------------------------------------
alias create_spriteset_for_pause create_spriteset
def create_spriteset
if $spriteset_map
@spriteset, $spriteset_map = $spriteset_map, @spriteset # 取出暂存的精灵组
else
create_spriteset_for_pause # 原方法
end
end
end
gif中可以看到,新建工程测试通过。
由于不太熟悉精灵组,不负责与其他脚本冲突的后续修改。 |