在AJAX函数中的Phaser中添加sprite加法

时间:2014-02-11 08:11:30

标签: javascript phaser-framework

我在使用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函数中,因此我必须保持函数边界。为什么这不起作用,我该如何解决?

2 个答案:

答案 0 :(得分:1)

问题实际上是使用连续ID命名变量(Turret0,Turret1等)。 这将结构信息转换为命名约定,这当然不太方便使用。

相反,您应该在AJAX响应中返回一个Turrets数组,并通过循环中的turrets[i]访问它。

答案 1 :(得分:1)

根据您当前的命名标准,我认为使用:

response['Turret'+i]

应该可行,但我同意从一开始就将Turret声明为一个阵列,就像之前的答案所建议的那样,这是一种更好的方法。