2014-02-11 6 views
0

У меня есть следующий код в игре я делаю с помощью Phaser:Looping добавление спрайтов в Phaser внутри функции AJAX

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, поэтому я должен оставаться в границах функций. Почему это не работает, и как я могу это исправить?

ответ

1

Проблема в том, что именования переменных с последовательными идентификаторами (Turret0, Turret1 и т. Д.). Это преобразует структурную информацию в соглашение об именах, что, конечно, менее удобно использовать.

Вместо этого вы должны вернуть массив турелей в свой ответ AJAX и получить доступ к нему через turrets[i] в цикле.

+0

Я думаю, что сейчас плохой метод массива. Спасибо за помощь. – user3292309

1

С вашим текущим стандартом именования Я думаю, с помощью:

response['Turret'+i]

должен работать, но я согласен, что объявление турель как массив с самого начала, как и предыдущий ответ предложил бы лучший подход.

 Смежные вопросы

  • Нет связанных вопросов^_^