加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 guoxiaomi 于 2017-3-18 01:41 编辑
(随处可见的)XP人物跟随脚本,会在重新进入 Scene_Map 的时候卡顿一帧(闪烁),只显示主角不显示跟随的人物,因为此时尚未更新跟随人物的 Sprite,然后调用 update 方法后才会显示跟随人物。
由于图像是从无到有,即使是 1 帧,也能被重度强迫症患者觉察到。
实际上有一个巧妙的方法来解决。按照上面所说的卡顿的原因,只要在调用 update 一次以后再执行画面过渡就好了。
请看修改后的 Scene_Map 的 main 方法的第 11 行:
为什么刷新了输入,因为从 Scene_Menu 退回到 Scene_Map 的时候,是按 X 键退回,如果不刷新按键的话,执行 update 时就会回到 Scene_Menu ……
class Scene_Map #-------------------------------------------------------------------------- # ● 主处理 #-------------------------------------------------------------------------- def main # 生成活动块 @spriteset = Spriteset_Map.new # 生成信息窗口 @message_window = Window_Message.new # 刷新输入和画面(解决人物跟随卡顿) Input.update update # 执行过渡 Graphics.transition # 主循环 loop do # 刷新游戏画面 Graphics.update # 刷新输入信息 Input.update # 刷新画面 update # 如果画面切换的话就中断循环 if $scene != self break end end # 准备过渡 Graphics.freeze # 释放活动块 @spriteset.dispose # 释放信息窗口 @message_window.dispose # 标题画面切换中的情况下 if $scene.is_a?(Scene_Title) # 淡入淡出画面 Graphics.transition Graphics.freeze end end end
class Scene_Map
#--------------------------------------------------------------------------
# ● 主处理
#--------------------------------------------------------------------------
def main
# 生成活动块
@spriteset = Spriteset_Map.new
# 生成信息窗口
@message_window = Window_Message.new
# 刷新输入和画面(解决人物跟随卡顿)
Input.update
update
# 执行过渡
Graphics.transition
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面
update
# 如果画面切换的话就中断循环
if $scene != self
break
end
end
# 准备过渡
Graphics.freeze
# 释放活动块
@spriteset.dispose
# 释放信息窗口
@message_window.dispose
# 标题画面切换中的情况下
if $scene.is_a?(Scene_Title)
# 淡入淡出画面
Graphics.transition
Graphics.freeze
end
end
end
本来想问这个问题的,看来我果然不适合伸手…… |