Project1

标题: 关于战斗中 移动图片 卡的问题 [打印本页]

作者: 2719358    时间: 2011-2-14 14:40
标题: 关于战斗中 移动图片 卡的问题
本帖最后由 2719358 于 2011-2-14 14:40 编辑

就是一个物品然后调用一个公共事件 结果使用这个物品的时候把FPS给卡没了,画面也变成1帧一帧的了,怎么优化?dsu_plus_rewardpost_czw
作者: 2719358    时间: 2011-2-14 17:56
三小时自顶
作者: Wind2010    时间: 2011-2-14 18:58
貌似不关这个公共事件的事...不介意的可以请你把范例发上来吗?
作者: 2719358    时间: 2011-2-15 07:52
回复 Wind2010 的帖子

范例很大……都已经制作了不少了,今天制作这个物品才发现的问题,在不战斗的情况下很流畅,好像忘了说明,我问的是在战斗的时候为什么会卡
####################################################3
自顶
作者: 退屈£无聊    时间: 2011-2-15 12:56
解决战斗中公共事件比较卡的问题




发表日期: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