设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

(又一)RGSS 1-3通用计时器bug,说吧,怎么修?

查看数: 3183 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-1-20 21:23

正文摘要:

本帖最后由 SailCat 于 2022-1-20 21:24 编辑 RGSS1: 计时器设置(5秒) 我相信上面的设置和判定方式都是大家制作游戏时通用的方式,但这个方式是真的会产生bug。 修正方式: 1. 将初始化的计时器时间增加59 ...

回复

shencao 发表于 2022-1-21 17:00:05
原来是bug吗
我以前是因为视觉上的原因,因为设定10秒的话画面不会显示10,一开始就是9,我猜意思是还剩下9秒多不到10秒(倒也没问题?)但是我希望玩家能看到10这个数字,所以我都是直接+1秒,想说反正放水1秒也差别不大不需要卡那么死,原来+1s还是合理的惊了
guoxiaomi 发表于 2022-1-21 15:23:09
所以rgss里因为整除导致的bug又多了一个,看来猫学姐需要对所有的整除都检查一遍了

点评

查完了,暂时没发现其他舍入问题,晚上来更新插件,请关注XP区  发表于 2022-1-21 20:52
SailCat 发表于 2022-1-21 13:56:31
本帖最后由 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
复制代码

评分

参与人数 1+1 收起 理由
guoxiaomi + 1 我很赞同

查看全部评分

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

  2. sec = $game_system.timer.to_f / Graphics.frame_rate
复制代码
SailCat 发表于 2022-1-21 11:59:59
一般来说,比如手机、球场、或者闹钟式计时器,当真实计时时间为 01:01.5的时候,倒计时器应该显示的是01:01还是01:02?
89444640 发表于 2022-1-21 11:30:25
那,在设定计时器时候,比想要的时间手动加一秒?
Im剑侠客 发表于 2022-1-21 06:14:28
还真有这个情况,怪不得呢~首秒与其他的秒数的存在时间差那么多,1帧的存在时间,以至于常常看到的是下一秒。

点评

给猫大提供一下反馈应该会被采纳吧?计时器初始化增加39帧,首秒正常显示,停止后。第二次重新计时开始,上次的结束秒数会先显示,再到正常秒数  发表于 2022-2-12 07:36
问一问猫大,不知道有没有计时器美化脚本的更新计划?一并修复包含首秒显示的问题呢?  发表于 2022-2-11 12:19
原来如此,惭愧啊看来是我班门弄斧了呢,受教了,请接受我负荆请罪的俯首。  发表于 2022-1-22 18:01
因为XP的那个计时器美化脚本是我写的啊……当时我只是注意到了首秒不显示的问题,哪知道后面还藏着这么个坑……  发表于 2022-1-22 07:39
Mark一下,有空查查原理。不过我想补充一个实际的情况,基于站内计时器美化脚本,事实上认真看首秒是可见的。当然你有空也可以看看丰富一下认识嘛  发表于 2022-1-22 07:02
百里_飞柳 发表于 2022-1-20 22:10:24
草,难怪我怎么说我自己糊的计时器,和默认的感觉对不齐

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

还是判定 frame 更准确啊
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-14 21:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表