SALINE▫ kiritumi
关注数: 38 粉丝数: 167 发帖数: 11,519 关注贴吧数: 65
可重置计时器(秒表) 放电路前先讲下起因吧…… 100多小时,火箭还没打,前80小时光顾着研究教程了……教程做完一脸头大,我是谁?我在哪?我要干什么? 然后进吧了解了一下,哦,原来要搞原油啊。去看了眼原油配方,更头大了 偶然了解到可以通过电路的方式控制储油罐阀门,于是又跑去研究电路…… 看到电路里有个东西叫扬声器,嚯,可以全图发警报。那我整个油量报警岂不是很爽? 然后又发现:我想让这玩意延迟/持续报警 N 秒,要怎么搞? 吧里讲计时的帖子一只手就能数过来,花了十几个小时整了各种奇怪的结构,总算把个能用的秒表(1800s误差15s)整出来了。中途一堆如何重置、计时乱飘的坑爹问题略过不表……下面直接发图。 基本结构如下:其中运算器的【输入】参数均可用Each信号(【每个信号】)替代。使用红信号是为了便于各位理解。重置秒表的关键在于这个判断器:如果绿信号 < 0,输出红信号,然后判断器上的红线把输出又输入回去进行套娃。什么意思呢? 注意右侧输入红信号48k,绿信号-1。 具体怎么回事,来看两个常量运算器: 下方常量运算器始终保持开启,永远输出红信号1。上方常量运算器输出绿信号-1。 ——实际上这就是秒表重置开关,按需开启。所以开关电路的逻辑如下: 1)绿箱子关闭,输出0,红箱子开启,始终输出1——判断器上输入为:绿色0,红色1,0<0,结果为False,不输出任何信号。 2)绿箱子打开,输出-1,红箱子开启——判断器上输入为:绿色-1,红色1,-1<0,结果为True,输出红色1,红色1回到输入端开始套娃,于是每帧(1/60s)内,判断器输出【常量箱的红信号+判断器上一刻的输出信号】,即循环+1。换言之,我们可以就此统计该秒表流逝了多少个1/60s。 算术运算器部分,下标U、M的运算器只是为了看时间方便,最下面的运算器拿来看时间(方便测试误差),实际拿掉也没关系。也就是说想读秒的话,只取用中间两个甚至一个运算器即可。下标T的运算器,将累计的红信号除以3600并取余数【%运算符为求余】并输出T信号。 什么效果呢? 游戏帧3600 = 60s(ups没掉的情况下) 3600 % 3600 = 0,T = 0 3601 % 3600 = 1,T = 1 3649 % 3600 = 49,T = 49 …… 效果即,每次红信号达到能被3600整除(60s)时,将T设为0——这一步方便后面计算秒数。不关心分钟数的,可以移除该运算器。T/S运算器,将T信号除以60,输出为S信号。 因为T最大3600,运算器除法取整,所以得出来的就是秒数。 U运算器同T运算器。将红信号 % 60,即每60次红信号重置,获得帧数。——嗯,60进制帧数怎么转换成十进制小数毫秒我已经不想研究了反正游戏精度也达不到 M运算器将红色信号【除以】3600。3600帧即为一分钟,除法取整,即得分钟数。 然后将U、S、M随便连个东西用来当秒表 缺点是这信号排列前后横跳,比较ZZ大的数排前面
1 下一页