异星工厂吧 关注:60,370贴子:383,563
  • 2回复贴,共1

用信号实现计时功能

取消只看楼主收藏回复

经常遇到小伙伴想要每隔多久做什么什么,然后不会在游戏里计时,我来简单给个栗子
1.先算数运算器首尾相连,累加1输出自己,这个值作为一个基础时钟

2.再来个算数运算器,就可以根据上面的时钟进行计时了。
这里我以1秒计时为例,基础时钟模60,当A值为0时就是1秒。
你如果想要10秒的话就基础时钟模600,A为0时就是10秒。
你如果想要30秒的话就基础时钟模1800,A为0时就是30秒。

接下来说下原理,游戏每秒60帧,所以基础时钟每秒累加60,所有60倍数的数字与基础时钟取模结果为0时就是秒数。
基础时钟最大值为2147483647,超出这个值会内存溢出变为负数,这个值大概需要游戏挂机414天才能达到。
不过其实变为负数也不影响计时,只是会突然产生一个误差。
这个基础时钟可以接入公共信号网络,作为整个基地的基础时钟
end


IP属地:河南1楼2024-11-22 20:15回复
    @LOVE奎托斯 你要的计时


    IP属地:河南2楼2024-11-22 20:16
    回复
      一个判断器的实现方法,原理相同,此图是5秒的计时器


      IP属地:河南9楼2024-11-24 07:06
      收起回复