## 方块的使用
我必须假设你已经完全理解了上几节的内容。
这时你已经获取到了方块,并用变量储存了这个方块。
我们直接用一个比较规范的例子来演示如何把你的按键操作传到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;//激活自触发
}
~~~
- 序言
- 写在前面的话
- 太空工程师
- MEA小组
- 一、入门
- 1.1 基础概念
- 1.2 编程工具
- 1.3 变量
- 1.4 函数 Function
- 1.5 基本语法
- 1.5.1 运算符
- 1.5.2 if
- 1.5.3 for
- 1.5.4 其他语法
- 1.3 类 Class
- 二、编程块
- 2.1 方块的概念
- 2.2 List<T>结构
- 2.3 获取方块
- 2.4 方块的使用
- 三、Ship 类
- 3.1 简介
- Ship v0.5
- 代码
- 手册(待更新)
- 例子(待更新)
- Ship v1.0
- 代码
- 例子
- 文档
- 实例化
- 内置变量
- 内置方法
- Target类
- 四、运动控制算法在SE中的应用
- 4.1 运动控制介绍
- 4.2 过程控制
- 4.3 震荡和动态误差
- 4.4 误差累加方案
- 4.5 PID算法
- 4.6 对PID算法的一点点简化
- 4.7 一阶惯性系统的PID算法优化的研究
- 五、MEA方块类
- 5.0 核心代码目录
- v1.0核心代码
- v1.1 核心代码
- v2.0 核心代码
- 5.1 类的概念
- 5.2 MEA的方块类(Block)
- 5.3 方块类文档
- 5.4 方块类2.0 全教程
- 5.4.1 安装和使用
- 5.4.2 方块类(Block)
- 5.4.3 显示屏类(DisplayScreen)
- 5.4.4 LCD类(LCD)
- 5.4.5 主控座椅类(Cockpit)
- 六、疯猴的编程笔记
- 第一个程序
- 获取和控制其他块
- 物流与生产
- 界面与通信
- 运动与姿态
- 侦测与导航
- 七、SteamZhou的笔记
- 有趣而花里胡哨的IDEA
- 八、质子对撞炮的笔记
- 属性 Property
- 接口 interface