1

Phaser を使用して作成しているゲームに次のコードがあります。

game.add.sprite(response.Turret0.posx, response.Turret0.posy, "turret");
game.add.sprite(response.Turret1.posx, response.Turret1.posy, "turret");
game.add.sprite(response.Turret2.posx, response.Turret2.posy, "turret");

上記のステートメントを実行するためにループを使用したかったのです。ただし、次のアプローチは機能しないようです。

for(int i=0;i<length;i++)
    game.add.sprite(response.'Turret+i'.posx, response.Turret0.posy, "turret");

コードは AJAX 関数内にあるため、関数の境界内にとどまる必要があります。これが機能しないのはなぜですか?どうすれば修正できますか?

4

2 に答える 2

1

問題は、連続した ID (Turret0、Turret1 など) を持つ変数に名前を付けることにあります。これにより、構造情報が命名規則に変換されますが、これはもちろん使いにくいものです。

代わりに、AJAX 応答で Turrets の配列を返し、turrets[i]ループ内でアクセスする必要があります。

于 2014-02-11T08:32:32.173 に答える
1

現在の命名基準では、次を使用すると思います:

response['Turret'+i]

うまくいくはずですが、前の回答が示唆したように、最初からTurretを配列として宣言する方が良い方法であることに同意します。

于 2014-02-12T11:47:57.537 に答える