返回 首页 文章详情 搜索 菜单

Scrap Mechanic控制器怎么设置循环动作

来自: 98游戏 浏览: 0 次 2026-06-20 17:52:43:06

在Scrap Mechanic中让控制器执行循环动作需通过脚本LOOP指令或外部信号闭环实现:前者用LOOP/END LOOP结构控制输出开关节奏,后者借助Timer+Comparator或Counter模块构建自反馈节拍;循环内可嵌入if判断响应外部输入,避免死锁。

scrap mechanic控制器怎么设置循环动作

在Scrap Mechanic中让控制器执行循环动作,是为了让机械结构(如双足机器人迈步、自动炮塔扫描、折叠机构反复收放)持续运转而不需手动重复触发——这依赖控制器脚本中的循环逻辑或外部信号回路构建,不能靠单次脉冲硬推。

用脚本内置LOOP指令实现真循环

第一步:右键点击已放置的【控制器】→选择“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]可接按钮、传感器或陀螺仪信号,让循环动作真正受控于环境。

这一步做完后,控制器开始按设定逻辑持续运行循环动作。

网友评论

写下您的评论

还没有玩家发表评论,快来抢占沙发吧!