Skip to content

JS 单片机

概述

简单照相机 图示

可以运行 Javascript(简称 JS)脚本的单片机,理论上可实现一切功能

使用前,需要先编辑它来指定哪些端口为输入,哪些端口为输出,之后每当输入电压发生变化时,都会运行一遍保存在其中的 JS 脚本,如运行错误会在游戏日志中报错

每一个 JS 单片机的运行环境都是独立的,而一个 JS 单片机中创建的变量、方法会一直保留(但不会保存进存档),强烈建议在初始化相关代码前判断是否需要初始化,否则容易触发重复声明的错误

内置变量

内置变量说明
P0后端口的电压。当后端口是输入时,可通过此变量来读取后端口的电压,赋值无效;当后端口是输出时,可通过给该变量赋值来输出指定电压
P1上端口的电压,其余同上
P2右端口的电压,其余同上
P3下端口的电压,其余同上
P4左端口的电压,其余同上
System.Net 的 System 命名空间
Game游戏的 Game 命名空间
Engine游戏的 Engine 命名空间
GameEntitySystem游戏的 GameEntitySystem 命名空间
Project当前游戏存档的Project对象

内置方法

内置方法说明
getPosition()返回该JS单片机所在位置,返回类型为Engine.Point3,内有XYZ三个字段来表示坐标
getPortState(number)返回指定端口的输入输出状态,参数需要输入0到4的整数,如果是输入则返回字符串input,输出output,禁用disabled,参数错误则返回error
setPortDisabled(number)设置指定端口为禁用,参数需要是0到4的整数
setPortInput(number)设置指定端口为输入,参数需要是0到4的整数
setPortOutput(number)设置指定端口为输出,参数需要是0到4的整数
importNamespace(string)导入并返回命名空间
findSubsystem(string)根据名称返回当前游戏存档的Subsystem,参数开头不要带Subsystem
executeAgain(number)让该JS单片机在电路运行n个循环后无视输入是否变化,再次自发执行脚本;如果在一次执行中多次使用该方法,以最后设置的n为准;n小于等于0则取消;如果自发执行脚本前因输入变化而执行,此方法取消

请务必先设置输入端口,否则脚本完全不会运行