Project1

标题: (又一)RGSS 1-3通用计时器bug,说吧,怎么修? [打印本页]

作者: SailCat    时间: 2022-1-20 21:23
标题: (又一)RGSS 1-3通用计时器bug,说吧,怎么修?
本帖最后由 SailCat 于 2022-1-20 21:24 编辑

RGSS1:
计时器设置(5秒)

计时器判定

实际计时时间(4秒1帧=161帧)


RGSS3:
计时器设置(5秒)

计时器判定

实际计时时间(4秒1帧=241帧)


我相信上面的设置和判定方式都是大家制作游戏时通用的方式,但这个方式是真的会产生bug。

修正方式:
1. 将初始化的计时器时间增加59帧(XP为39帧)即补足缺少的时间,但是计时器的另一个功能(计时器达到时间自动中断战斗)逻辑会出现问题
2. 初始化的计时器时间不变,但对条件分歧的时间判断,“以下”的判定从小于改成小于等于(也就是将此处的“以下”解释为“未满”),但事件解释器中各处“以下”的内涵会不一致
3. 这是feature,所以我需要计时5分钟的时候把计时器的开始时间设置为5分1秒。

作者: orochi2k    时间: 2022-1-20 21:25
等等,为什么还有人在用默认的计时器?
直接刷系统时间甚至CPU频率读秒就完事了(大雾)
作者: 百里_飞柳    时间: 2022-1-20 22:10
草,难怪我怎么说我自己糊的计时器,和默认的感觉对不齐

感觉是因为条件分歧里判定的秒数是 $game_timer.sec 获得的
那最后一秒内只有59帧时,返回就是0秒了

还是判定 frame 更准确啊
作者: Im剑侠客    时间: 2022-1-21 06:14
还真有这个情况,怪不得呢~首秒与其他的秒数的存在时间差那么多,1帧的存在时间,以至于常常看到的是下一秒。
作者: 89444640    时间: 2022-1-21 11:30
那,在设定计时器时候,比想要的时间手动加一秒?
作者: SailCat    时间: 2022-1-21 11:59
一般来说,比如手机、球场、或者闹钟式计时器,当真实计时时间为 01:01.5的时候,倒计时器应该显示的是01:01还是01:02?

作者: fux2    时间: 2022-1-21 13:40
确实是个老bug了,当时我的解决方法是把条件判定里的计时器判定部分转成了浮点
  1. #sec = $game_system.timer / Graphics.frame_rate

  2. sec = $game_system.timer.to_f / Graphics.frame_rate
复制代码

作者: SailCat    时间: 2022-1-21 13:56
本帖最后由 SailCat 于 2022-1-21 13:58 编辑
fux2 发表于 2022-1-21 13:40
确实是个老bug了,当时我的解决方法是把条件判定里的计时器判定部分转成了浮点
...


最后确认了这个修正方式,将除法转成乘法,道理应该是一样的,乘法不会出现舍尾问题
  1.   #--------------------------------------------------------------------------
  2.   # ● 条件分支 计时器 以下
  3.   #--------------------------------------------------------------------------
  4.   def command_111_3_1
  5.     $game_system.timer_working and $game_system.timer <= @parameters[1] *
  6.       Graphics.frame_rate
  7.   end
复制代码

作者: guoxiaomi    时间: 2022-1-21 15:23
所以rgss里因为整除导致的bug又多了一个,看来猫学姐需要对所有的整除都检查一遍了
作者: shencao    时间: 2022-1-21 17:00
原来是bug吗
我以前是因为视觉上的原因,因为设定10秒的话画面不会显示10,一开始就是9,我猜意思是还剩下9秒多不到10秒(倒也没问题?)但是我希望玩家能看到10这个数字,所以我都是直接+1秒,想说反正放水1秒也差别不大不需要卡那么死,原来+1s还是合理的惊了
作者: SailCat    时间: 2022-2-12 08:12
Im剑侠客 发表于 2022-1-21 06:14
还真有这个情况,怪不得呢~首秒与其他的秒数的存在时间差那么多,1帧的存在时间,以至于常常看到的是下一秒 ...

更新计划那是必须有的

这两天在打包和其他计时器增强一并测试 ,应该周末就会更新了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1