解决战斗中公共事件比较卡的问题
发表日期:2005-10-14
作者
柳柳(中国大陆)
版本与更新
2005年10月更新
相关网址
范例工程
不提供
--------------------------------------------------------------------------------
教程内容
刚研究的。一般RMXP的战斗中使用公共事件都会比较卡,尤其是使用了战斗血槽或者自定义血槽、自定义头像的时候。如果测试模式,按F2,可以看到帧速率明显下降了。
解决方法:
1、Scene_Battle 1,234-238行:
# 如果不是结束战斗回合的情况下
if @phase != 5
# 刷新状态窗口
@status_window.refresh
end
删了它!就是它造成很卡的。解释一句:这段的功能是刷新状态窗口,防止公共事件中我方减血后状态窗口没有更新出来。
2、不过这段又不能完全不要,否则我方用公共事件或遭到公共事件攻击的时候状态窗口会完全忘记刷新。所以把上面那段插到Scene_Battle 4的 def update_phase4_step6的比较靠下的敌方,变成如下:
def update_phase4_step6
# 清除强制行动对像的战斗者
$game_temp.forcing_battler = nil
# 公共事件 ID 有效的情况下
if @common_event_id > 0
# 设置事件
common_event = $data_common_events[@common_event_id]
$game_system.battle_interpreter.setup(common_event.list, 0)
end
# 如果不是结束战斗回合的情况下
if @phase != 5
# 刷新状态窗口
@status_window.refresh
end
# 移至步骤 1
@phase4_step = 1
end
也就是说,公共事件执行结束后再刷新。这样把几百次刷新变为了1次,而效果相差很小。
经过测试,黑暗圣剑中的灵炮,在做此更改前后,帧速率由9提升至17。还不错。
其实有关优化的内容有很多,公共事件多了也会造成拖沓,这些倒是可以设法手动修改脚本减少拖沓。唯一比较恶心的是地图大了造成的拖沓无法挽回(因为那段代码没有公开在脚本中……)
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |