ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 方块的使用 我必须假设你已经完全理解了上几节的内容。 这时你已经获取到了方块,并用变量储存了这个方块。 我们直接用一个比较规范的例子来演示如何把你的按键操作传到LCD上 ~~~ bool init; //公共变量声明不赋值,为默认值,false void Main(){ if(!init){GetBlocks();return;} //如果初始化不成功,直接返回,不执行下面的代码了。方块都不够,执行做什么呢? Vector3 WASD = Cockpit.MoveIndicator; //这个方法哪来的?去查IMyShipController的API呀~ //这个变量有3个成员变量,X Y Z分别代表WASD空格和C的按键输入,使用了右手坐标系。(游戏中都是这个坐标系) string info = ""; info += (WASD.X < 0 ? "左" : (WASD.X > 0 ? "右" : "")); //三元运算符连用。 info += "\n"; //换行 info += (WASD.Y < 0 ? "下" : (WASD.Y > 0 ? "上" : "")); //三元运算符连用。 info += "\n"; //换行 info += (WASD.Z < 0 ? "前" : (WASD.X > 0 ? "后" : "")); //三元运算符连用。 info += "\n"; //换行 foreach(IMyTextPanel lcd in LCD){ lcd.ShowPublicTextOnScreen(); //LCD的显示公共文本默认是关闭的,这里开启一下 lcd.WritePublicText(info); //将info写入LCD的公共文本里 } //坐上飞船,按在驾驶舱,按下按键,LCD上会显示出你按下的方向 } IMyShipController Cockpit; //这个类型是驾驶舱、主控座椅、远程控制块共通的基类 List<IMyTextPanel> LCD; void GetBlocks(){ List<IMyShipController> cockpits = new List<IMyShipController>(); GridTerminalSystem.GetBlocksOfType(cockpits); //获取所有主控座椅,当然你也可以在这里按名字筛选 if(cockpits.Count <= 0){ return; //如果主控座椅都没有,返回吧,别继续了 }else{ Cockpit = cockpits[0]; //将主控座椅里第一个存起来,其他的不要了 } LCD = new List<IMyTextPanel>(); GridTerminalSystem.GetBlocksOfType(LCD); //获取所有LCD,当然你也可以在这里按名字筛选 if(LCD.Count <= 0){ return; } init = true; //初始化成功 } //设置程序自动开始运行 public Program(){ Runtime.UpdateFrequency = UpdateFrequency.Update1;//激活自触发 } ~~~