我现在正在构建一个 javascript 游戏,并将游戏的某些部分编码在单独的文件中,例如用于循环和初始化等的 main.js,然后我有关卡、玩家、碰撞文件。
游戏文件(关卡、玩家、碰撞)设置如下:
function Level(){
this.draw_level = function(){
}
}
然后像这样从我的主文件中调用:
var level = new Level();
level.draw_level();
我遇到的问题是从嵌套函数返回信息。这是我所指的代码:
function Level (){
//other functions
this.collisionLayer = function(layer){
if(!layer.properties && !layer.properties.collision){return;}
var t = this,
row = [];
t.solids = [];
layer.data.forEach(function(idx, i) {
if (i % layer.width === 0 && i) {
t.solids.push(row);
row = [];
}
row.push(idx);
});
t.solids.push(row);
}
}
并从我的主文件中调用,如下所示:
var collisions = level.collisionLayer(layers)
我想做的是返回 t.solids 数组,这样我就可以利用存储在主 JS 文件中的信息。
我努力了
return t;
但我得到突出显示错误的功能:
function has inconsistent return points
所以我的问题是:
在像我这样的情况下返回信息的更好方法是什么?存储在全局变量中?或其他方式?
上面的错误是什么意思?很高兴知道以供将来参考。
谢谢