canary minecraft mod使用javascript scriptcraft示例代码的问题
Problems using javascript scriptcraft example code for canary minecraft mod
我正在努力遵循scriptcraft示例页面上给出的示例,尤其是"摩天大楼"示例。我发现这个脚本需要一些修改才能工作,目前我的代码片段如下:
exports.mytest = function ( floors ) {
var i ;
if ( typeof floors == 'undefined' ) {
floors = 10;
}
// bookmark the drone's position so it can return there later
this.chkpt('myskyscraper');
for ( i = 0; i < floors; i++ ) {
echo( 'Floor ' + i);
this
.box(blocks.iron,20,1,20)
.up()
.box0(blocks.glass_pane,20,3,20)
.up(3);
}
// return the drone to where it started
this.move('myskyscraper');
};
但是,尽管计数器计数为3(或我指定的任何数字),"摩天大楼"只有一层!
我打电话如下:
/js mytest(10)
编剧有什么变化吗?
有点晚了,但也许你还在寻找答案。。。你的问题是this
总是引用起点/无人机,所以每次迭代都是从当前位置重新开始。为了避免这种情况,你必须保存当前的无人机位置(显然它没有状态/每次你用它做某事时都会得到一个新的对象)。所以我修改了你的代码片段,比如:
exports.mytest = function ( floors ) {
var i ;
if ( typeof floors == 'undefined' ) {
floors = 10;
}
var drone = this;
// bookmark the drone's position so it can return there later
drone.chkpt('myskyscraper');
for ( i = 0; i < floors; i++ ) {
echo( 'Floor ' + i);
drone = drone
.box(blocks.iron,20,1,20)
.up()
.box0(blocks.glass_pane,20,3,20)
.up(3);
}
// return the drone to where it started
drone.move('myskyscraper');
};
重要的部分是:
var drone = this;
和
drone = drone.box(...
相关文章:
- JavaScript代码问题:我正在将对象转换为数组
- 简单的Javascript代码问题
- 如果调试器关闭,Internet Explorer将出现运行代码问题
- AJAX自定义错误处理代码问题
- 花式盒子代码问题
- 谷歌分析事件跟踪代码问题
- 面临使用 javascript 的代码问题
- HTML页面头部出现Javascript代码问题
- JavaScript中的未来日期代码问题
- JavaScript代码问题
- js警报框中的资源文件变量给出字符串ASCII代码问题
- JQuery隐藏列表项超过5个代码问题
- AngularJS和JSON的代码问题
- Javascript代码问题"和& # 39;
- 验证代码问题
- 解析云代码问题中的条带模块
- SVG嵌入到HTML中,拖放代码问题
- 更新面板中的中继器- itemcommand代码问题-调用javascript函数与ScriptManager在代码后面
- Owl Carousel: Javascript不加载.Shopify问题或代码问题
- 从JSFiddle复制代码问题