【问题标题】:Looping sprite addition in Phaser inside AJAX function在 AJAX 函数内的 Phaser 中循环添加精灵
【发布时间】:2014-03-08 22:00:53
【问题描述】:

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

【问题讨论】:

    标签: javascript phaser-framework


    【解决方案1】:

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

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

    【讨论】:

    • 我认为现在不适合使用数组方法。谢谢您的帮助
    【解决方案2】:

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

    response['Turret'+i]

    应该可以,但我同意按照前面的答案建议从一开始就将 Turret 声明为数组会是更好的方法。

    【讨论】:

      猜你喜欢
      • 2020-01-27
      • 2014-10-02
      • 2020-06-01
      • 2014-08-26
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2017-05-27
      相关资源
      最近更新 更多