cactusir cactusir
关注数: 3 粉丝数: 14 发帖数: 162 关注贴吧数: 43
Programmable Block 【编程模块 真-入门】简单到不能再简单了。 来源还是steam社区的教学贴 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fsteamcommunity.com%2Fsharedfiles%2Ffiledetails%2F%3Fid%3D368213720&urlrefer=6d24d8ba063365872b17f428595d5739 原文叫 Programmable Block - Hello, Galaxy! (Beacon) 我们来改一下,操作如下 1开个新档,创造模式 2,新建一个完全独立的空间站平台 3,放上一个反应堆,一个编程模块,一个信标(Beacon) 4,对准变成模块的屏幕按K键,再按编辑(Edit) 5,将里面清空,复制入这段: string aaa="Hello, Galaxy!" void Main() { IMyBeacon beacon = GridTerminalSystem.GetBlockWithName("Beacon") as IMyBeacon; beacon.SetCustomName(aaa); } 6,检查,保存退出,点运行(Run) 看看你的信标是不是显示成Hello, Galaxy!了? 恭喜你的第一个Hello, World程序运行成功。 下面来解释一下原理 第一句 string aaa="Hello, Galaxy!" 定义了一个变量叫aaa并且给他赋值,这个值就是你想显示的字了 可以自己随意改 第二句void Main() 程序主方法,可以理解为程序入口,不用管, 第三句 IMyBeacon beacon = GridTerminalSystem.GetBlockWithName("Beacon") as IMyBeacon; 很长 我也不是很专业可以这样理解,在IMyBeacon类别物品下找到一个名字为Beacon的物体,并将它绑定给我们新定义的一个容器beacon, 第四句 beacon.SetCustomName(aaa); 通过容器beacon访问这个物体的SetCustomName(自定义名称)将它的值改为变量aaa的内容 差不多就这个意思吧。。。。不知道大家看得明白不?求高手出个新手向的教程。。。我也好跟着学一下。。。
Programmable block 【编程方块 入门】 Steam社区指南贴内容 来源----http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fsteamcommunity.com%2Fsharedfiles%2Ffiledetails%2F%3Fid%3D368970814&urlrefer=775588628c463bbfa5c567e1a199b8a5 按作者说的是写给很少接触C#或者其他编程语言的玩家看的 整个程序代码如下 List<IMyTerminalBlock> grid = new List<IMyTerminalBlock>(); void Main() { grid.Clear(); GridTerminalSystem.GetBlocksOfType<IMyInteriorLight>(grid); for(int k = 0; k < grid.Count; k++) { grid[k].SetCustomName("Interior Light " + (k + 1)); grid[k].RequestShowOnHUD(true); } } 我试过了,随便开个新档,直接在出生平台上放一个编程模块,然后运行就可以看到效果了 什么效果呢,这个程序会搜索所有类型为IMyInteriorLight 的物体(室内灯 InteriorLight)然后利用for循环 把他们的名字全部改成Interior Light 1 2 3 4 5 6.。。。。。grid[k].SetCustomName("Interior Light " + (k + 1)); 并且将名字显示在HUD上grid[k].RequestShowOnHUD(true); 然后我再最后加了一句做实验 grid[k].GetActionWithName("OnOff_Off").Apply(grid[k]); 整个程序看起来就是这样 List<IMyTerminalBlock> grid = new List<IMyTerminalBlock>(); void Main() { grid.Clear(); GridTerminalSystem.GetBlocksOfType<IMyInteriorLight>(grid); for(int k = 0; k < grid.Count; k++) { grid[k].SetCustomName("Interior Light " + (k + 1)); grid[k].RequestShowOnHUD(true); grid[k].GetActionWithName("OnOff_Off").Apply(grid[k]); } } 效果如上,只是最后执行了一个关灯的动作,把所有的灯都关闭了, 希望可以帮助大家了解一下这个东西的运作原理。。。完毕。。。
1 下一页