三国志2015
策略 | 59.19MB | 2021-11-06
下载来自: 98游戏 浏览: 0 次 2026-06-20 17:52:43:06
在Scrap Mechanic中让控制器执行循环动作需通过脚本LOOP指令或外部信号闭环实现:前者用LOOP/END LOOP结构控制输出开关节奏,后者借助Timer+Comparator或Counter模块构建自反馈节拍;循环内可嵌入if判断响应外部输入,避免死锁。

在Scrap Mechanic中让控制器执行循环动作,是为了让机械结构(如双足机器人迈步、自动炮塔扫描、折叠机构反复收放)持续运转而不需手动重复触发——这依赖控制器脚本中的循环逻辑或外部信号回路构建,不能靠单次脉冲硬推。
第一步:右键点击已放置的【控制器】→选择“Edit Program”进入代码编辑界面。
第二步:删除默认模板里的所有内容,从头输入以下基础循环结构:
LOOP
output[0] = 1
wait(0.5)
output[0] = 0
wait(0.5)
END LOOP
第三步:按Ctrl+S保存→关闭编辑器→按E键打开控制器属性面板→确认“Run on Startup”已勾选。此时控制器上电即自动运行该循环,每秒开关一次output[0],适合驱动电机启停、LED闪烁等简单节奏动作。
注意:LOOP必须成对出现,漏写END LOOP会导致控制器报错红灯,且无法再通过右键打开编辑器——只能拆除重放。
方法一:Timer+Comparator自反馈回路
放置1个Timer模块(设为Pulse模式,周期1.0秒)→其Output连至Comparator的A端;Comparator B端设为0.5→Comparator输出接控制器Input[0];再将控制器output[0]反向后(经Inverter)连回Timer的Reset端。这样每次输出触发后自动复位Timer,形成稳定节拍。
方法二:Counter溢出自动归零
接1个Counter模块→Clock输入连Battery→Pulse Generator(频率5Hz);Counter上限设为9(即计数0~9共10档);勾选【Reset on overflow】;Counter输出直连控制器Input[0]。当计数值达到10时自动清零,输出信号连续递增再归零,可驱动多步序动作。
【Counter未勾选“Reset on overflow”会导致第10次后输出跳变为-2147483648,烧毁下游比较器】
在LOOP内部加入if语句,使循环响应外部状态而非无脑执行:
LOOP
if input[0] == 1 then
output[0] = 1
wait(0.3)
output[0] = 0
wait(0.3)
else
wait(0.1)
end
END LOOP
这段代码让output[0]只在input[0]为高电平时循环开关,否则每0.1秒空转一次——既省电又防误触。实际部署时,input[0]可接按钮、传感器或陀螺仪信号,让循环动作真正受控于环境。
这一步做完后,控制器开始按设定逻辑持续运行循环动作。
还没有玩家发表评论,快来抢占沙发吧!