2014-11-26 16:36:00 k73游戏之家 作者:bsimpler
小小大星球玩家在这款游戏中要学会自己来制作,关于信号电路方面怎么把持续信号转化为单次脉冲信号呢?这个难度是比较大的,下面小编就跟玩家详细的介绍下吧!希望对玩家有帮助哟!
制作关卡时要用到很多,例如选择器的入口接上持续信号后,其他入口再进信号就无效了。之前一直是用计时器来转换,持续信号接在计时器重置端口,计时器输出反转,计时0.1秒,这样每次会输出0.1秒的信号。
今天看了一下团队精选里3D/2D的copyable level,才发现是可以用计数器只输出0.0333秒信号。方法是把计数个数设为1,并自我清零。
然后就试了用连环计数器把这个三分之一秒脉冲传递10000次后会有多少延迟,答案是没有延迟,小小大在0.0333秒内完成了所有线路的计算。另外10000次时已经提示系统超负荷了,画面很卡。
小小大帧数cap是30FPS,所以每次计算都以0.0333秒分隔。之前总感觉有些原件会被放到下一帧去计算,逻辑上会出错,不知道跟我以前用的0.1秒有没有关系,还是没搞对优先级。
脉冲信号之后应当避免连接开关式的计时器,因为每个信号都会让计时器向前走0.0333秒,会使每次计时时间产生差别,不过咱们也可以利用这一点来实现一些功能。
最小的计时单位是0.1秒,有没有办法更小?比如使用计时器的周期只能做出10帧的动画,但是画面看起来不连贯,那么如何制作30帧的逐帧动画?
按照照片里的连法(选择器前面的部分),就可以实现延迟0.0333秒,即在0.1内发出三个信号。这三个信号可以被计数器捕捉,大约1内能捕捉大约7.5次信号。这三个信号用OR开关连接后,0.1秒发出一次三连信号,OR开关后面计数器的数值是三个数字和的1/3倍,如果隔0.2秒发出一个三连信号,就是三个数字和的2/3倍,如果隔0.3秒发出一个三连信号,则是三个的加和(原因可能是OR开关连续的0.0333秒信号后又会花费一个0.0333秒来处理信号,所以4个信号里会丢掉一个信号,即丢失1/4。0.2秒一次时会丢失1/3信号,能知道是丢掉了4个里前3个的某一个)。AND开关一次也没有,说明他们是分开的。
连接方法
只说核心的吧,就是让0.0333秒的信号延迟0.0333秒后输出,连两遍就是延迟0.0666秒了。
0.0333秒信号→倒计时计时器开关(计时0.1秒)→普通计时器开关(0.1秒)→自己的重置接口。〔原理:就是这楼的第一段话〕
就是照片里第2行那四个,两个一组,每组延迟0.0333秒。不延迟的方法就是一楼说的自连的计数器。
如果用10个这样的,就能每秒输出30个信号了,每个信号连接一个生成器,生成一帧动画。我想大概不会出现信号丢失。
另外需要说明的是,计数器对负方向是没有响应的,所以要让自循环计数器对负方向其作用,需要在前面加一个0.1秒计时器,先将信号转化为0.1秒的普通信号。0.1秒计时器接法:信号接在计时器的重置端口,计时器设定为反向输出,计时器开关接口不接信号。
像这种电路就能用到,我下面换图层需要检测到“X”信号AND选择器2#,同时“X”信号也有把选择器就切换到1#的作用。不加延迟,换图层就不起作用。
需要注意,第二个计时器的当前时间要设成0,要不它就没法重置自己。
不管入口时单个信号还是持续信号,都起作用。
还有一种情况也要用到
1.布娃娃碰撞任何物体时进入悬停状态
2.布娃娃碰到地面时解除失重状态
这里两个都是碰撞感应器,系统默认的优先级是碰撞任何物体比碰撞带标签的物体要高。这里给1号加了延迟。
用not自接就是方便,每秒15帧基本就能看出连贯的动作了,只要每帧差距不太大