将计时器变量的0作为链接条件时

当倒计时变量的值变为0时,条件链接本应触发并进入下一个状态,但实际上并未跳转。
在测试中,将另一个变量设为0,并设置“变量等于0”的条件链接,该链接能正常工作。
因此,可能是倒计时变量显示为“0.00”而非“0”,导致条件判断未生效。
烦请确认。

附注:
由于是倒计时,计数器变量最终会显示为0.00。
但使用“变量=0”或“变量<=0”作为链接条件时,链接并未跳转;而使用“变量<=0.1”时,链接则正常跳转。

我也在使用类似的链接,但能正常跳转。
或许您可以检查以下几点:
· 本想设置倒计时,却误设为递增计数
· 引用了其他变量
· 尝试将“=0”改为“<=0”
· 尝试将计数停止值设置为0

1 个赞

顺便说一下,我使用的是<=0进行转移。
未设置定时器计数停止值。
变量已设置为全局变量。

1 个赞





感谢您的回复。
嗯,真是奇怪呢。几乎在收到您的回复的同时,我补充说明:当变量<=0时链接不会跳转,但将条件改为变量<=0.1时,则成功跳转了。
我创建了一个与玩家不同的对象,并附加了VS(视觉特效),在该对象自身上添加了一个名为“消失计时器”的变量并加以使用。这是一个显示后2秒消失的VS。
我在该对象上添加了文本,以便显示计数器的数值,因此也能看到2秒内计数器递减的情况。
如果将链接条件设为变量<=0.1,它会正常消失,所以变量名等应该没有错误。嗯,真是不可思议。
即使将其更改为全局变量(项目变量),结果也是一样的……

虽然话题稍有偏离,但上方照片中显示为0.00的数值,是通过VS的文本显示功能输出的吗?
如果通过VS文本显示中设置小数位数的选项来显示,当值为0时,应该不会显示为0.00,而应显示为单个0。
既然实际情况并非如此,是否可以考虑在变量处理过程中混入了其他异常处理逻辑?

1 个赞

我与您的处理唯一不同的地方在于,我直接在初始值输入中将默认值设置为2。乍一看,这似乎是一个毫无问题的合理设置……但我选择通过参考数据库中设置好的数值来进行赋值。

1 个赞

感谢您的回复。
我并没有进行任何特殊操作,只是一个只有两个状态的简单 VS 事件。
在“显示文本”动作中,“隐藏小数部分”选项已设置为关闭。
即使直接输入 2,或者先将计数器变量初始化为 2,再使用该变量作为初始值,结果仍然相同。

另外,我忘记采纳 Mayo 先生的一项建议:
将“计数停止值”设置为常量,并将该常量值设为 0。
此时,无论将链接条件设置为“变量 <= 0”还是“变量 = 0”,
链接都能正常推进,对象也能被正确删除。
但 Mayo 先生表示,即使不设置这些条件,事件也能正常运行……真是令人困惑。

目前虽然已经得到了预期的结果,但心中仍有些疑虑。
是否因为存在某种不可见的微小数值(例如 0.001),导致系统无法将其判定为 0?
如果是这样,那么计数无法精确归零是否属于一个漏洞呢?

无论如何,再次感谢您的帮助!

不管怎样,如果顺利的话就太好了。

以下是我的推测:

虽然可能无关紧要,但在通过变量赋值设置常量时,
建议您尝试一下:输入数值 1.2,确认输入后,将鼠标光标悬停在 1.2 上方。
(就像将鼠标悬停在项目上以显示详细信息那样)
这样做的话,本该显示 1.2,却不会变成类似 1.19999999 这样的数值吗?
如果是 2,则保持为 2,但按照这个逻辑,实际上可能存储的不是 2,而是类似 1.9999999 或 2.0000001 这样的数值。
如果计时器的设计是每次减少 0.01,那么第三位及之后的小数位可能未被扣除而残留……我猜想可能是这种现象,导致既不会等于 0,也不会小于等于 0。

1 个赞

确实,在1.2中执行该操作时,出现了令人毛骨悚然的数字:1.19999999999709,哈哈。2确实仍然保持为2。话说回来,Actzku MV的计时器似乎也遇到过类似的小数点问题……嗯,我忘了。

1 个赞