Scrap Mechanic控制器如何设置循环动作
想要在游戏《Scrap Mechanic》中让控制器自动循环执行动作,掌握脚本LOOP指令与外部信号闭环这两种主要方法至关重要。具体步骤与实现细节如下所示。
为达成机械结构持续自动运作而不依赖于手动一次次触发的目的,例如双足机器人迈步或自动炮塔的周期性扫描,必须在控制器脚本中构建循环逻辑,或者利用外部电路组成信号回路,绝非依赖单一脉冲信号可以完成。
用脚本内置LOOP指令实现真循环
第一步是找到已放置好的控制器部件,对其点击鼠标右键,在弹出的菜单中选择“编辑程序”,从而进入脚本编写界面。
第二步操作是将默认生成的模板代码清空,然后完整输入以下包含基础循环的代码结构:
LOOP
output[0] = 1
wait(0.5)
output[0] = 0
wait(0.5)
END LOOP
第三步则需要保存并激活脚本,按下键盘Ctrl+S组合键保存代码,之后关闭编辑器窗口,按E键打开控制器的属性面板,确保其中的“启动时运行”选项已被勾选。完成这些设置后控制器一旦获得电力,便会立即开始执行循环,它会每秒控制output[0]端口进行一次开关动作,特别适合用于驱动马达的启停控制或实现LED灯的闪烁效果。
这里必须注意一个要点:LOOP指令必须与END LOOP成对出现,若遗漏END LOOP将引发控制器报错亮起红灯,并且你将无法再通过右键菜单打开编辑器,唯一的解决方法是拆除该控制器再重新放置。
用外部信号构成闭环实现伪循环
第一种实现方法是依靠计时器和比较器构建自反馈回路。放置一个设置为脉冲模式的计时器模块,其周期应设定为1.0秒。然后将计时器的输出端连接到比较器的A输入端,将比较器的B端基准值设为0.5。接着将比较器的输出信号连接到控制器的输入端口Input[0]上。最后需要把控制器的输出output[0]经过一个信号反向器处理后,再连接回计时器的复位端。这样的连接方式能在每次输出触发后自动重置计时器,从而形成稳定的脉冲节拍。
第二种实现方法则是利用计数器模块的溢出归零特性。先在电路中接入一个计数器模块,将电池通过脉冲发生器产生的时钟信号连接到计数器的时钟输入,建议脉冲频率设为5Hz。接着将计数器的计数值上限设置为9,这意味着它能从0计数到9共10个数值档位。最关键的一步是要勾选计数器的“溢出时复位”选项。之后直接将计数器的输出端与控制器的输入端口Input[0]相连。当计数达到上限10时,计数器会自动清零,其输出信号会呈现连续递增随后瞬间归零的循环,可用于驱动需要分步执行的顺序动作。
特别需要留意的是,若未勾选计数器的“溢出时复位”选项,在第10次计数后其输出会跳变为一个极大负值,这极可能导致下游连接的比较器等模块损坏。
循环中嵌入条件判断避免死锁
可以在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
上述代码的作用是:仅当input[0]端口接收到高电平信号时,控制器才会控制output[0]端口循环执行开启和关闭操作;否则,它将每隔0.1秒进行一个极短的等待空转。这样做既能有效节省电力消耗,也能防止在不希望的时候误触发动作。在实际应用中,input[0]端口可以连接到按钮开关、各类传感器或陀螺仪等装置的信号输出上,从而使循环动作的执行与否能够真正受环境因素控制。
当完成以上所有步骤的设置后,控制器便会按照你所制定的逻辑规则,稳定且持续地运行预设的循环动作。无论是使用脚本指令还是外部电路,都能实现机械的自动化运行。