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

Project1

 找回密码
 注册会员
搜索
查看: 3116|回复: 23
打印 上一主题 下一主题

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

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
22442
在线时间
2335 小时
注册时间
2005-10-15
帖子
1160

开拓者

跳转到指定楼层
1
发表于 2022-1-20 21:23:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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秒。
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。

Lv4.逐梦者

梦石
1
星屑
8946
在线时间
4371 小时
注册时间
2005-10-22
帖子
6752

开拓者贵宾

2
发表于 2022-1-20 21:25:14 | 只看该作者
等等,为什么还有人在用默认的计时器?
直接刷系统时间甚至CPU频率读秒就完事了(大雾)
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
33412
在线时间
6552 小时
注册时间
2012-5-26
帖子
3178

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

3
发表于 2022-1-20 22:10:24 | 只看该作者
草,难怪我怎么说我自己糊的计时器,和默认的感觉对不齐

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

还是判定 frame 更准确啊
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7921
在线时间
1049 小时
注册时间
2012-4-3
帖子
1271

开拓者

4
发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
34870
在线时间
4148 小时
注册时间
2007-12-15
帖子
9981
5
发表于 2022-1-21 11:30:25 | 只看该作者
那,在设定计时器时候,比想要的时间手动加一秒?
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
22442
在线时间
2335 小时
注册时间
2005-10-15
帖子
1160

开拓者

6
 楼主| 发表于 2022-1-21 11:59:59 | 只看该作者
一般来说,比如手机、球场、或者闹钟式计时器,当真实计时时间为 01:01.5的时候,倒计时器应该显示的是01:01还是01:02?
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39670
在线时间
7485 小时
注册时间
2009-7-6
帖子
13483

开拓者贵宾

7
发表于 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
复制代码
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
22442
在线时间
2335 小时
注册时间
2005-10-15
帖子
1160

开拓者

8
 楼主| 发表于 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 我很赞同

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

9
发表于 2022-1-21 15:23:09 | 只看该作者
所以rgss里因为整除导致的bug又多了一个,看来猫学姐需要对所有的整除都检查一遍了

点评

查完了,暂时没发现其他舍入问题,晚上来更新插件,请关注XP区  发表于 2022-1-21 20:52
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
20321
在线时间
4876 小时
注册时间
2014-12-22
帖子
1525

开拓者

10
发表于 2022-1-21 17:00:05 | 只看该作者
原来是bug吗
我以前是因为视觉上的原因,因为设定10秒的话画面不会显示10,一开始就是9,我猜意思是还剩下9秒多不到10秒(倒也没问题?)但是我希望玩家能看到10这个数字,所以我都是直接+1秒,想说反正放水1秒也差别不大不需要卡那么死,原来+1s还是合理的惊了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-4-27 09:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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