1

我现在正在构建一个 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

所以我的问题是:

在像我这样的情况下返回信息的更好方法是什么?存储在全局变量中?或其他方式?

上面的错误是什么意思?很高兴知道以供将来参考。

谢谢

4

1 回答 1

1

感谢您的所有投入。正如 Parthik Gosar 所说,我可以使用 level.solids 访问实体数组!再次感谢

于 2013-04-12T19:24:23.567 回答