1

私は現在JavaScriptゲームを構築しており、ゲームの特定の部分を別々のファイルにコーディングしています。

ゲーム ファイル (レベル、プレーヤー、衝突) は次のように設定されます。

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 に答える