Я пытаюсь написать игру со змеями.Это довольно просто, есть массив сегментов змей, которые являются спрайтами, и все они имеют значения x
и y
.В каждом игровом цикле я хочу обновлять сегменты змеи на основе пользовательского ввода.
Примечание: голова змеи определяется как this.segments[0]
.Первым элементом массива сегментов является заголовок.
Мне кажется логичным обновить заголовок змей, основываясь на входных данных пользователей, а затем следовать каждому сегменту змей после обновления заголовков.Пока это мой код:
public function update()
{
// Update snake head
this.segments[0].x += 10;
for (var i:Number = 1; i < this.segments.length; i++)
{
// Set the segments position to be the same as the one before it
this.segments[i].x = this.segments[i - 1].x;
this.segments[i].y = this.segments[i - 1].y;
}
}
Надеюсь, вы сможете увидеть, что вы здесь делаете.Я пытаюсь установить значения сегментов x и y такими же, как у предыдущего, поэтому он будет «следовать».
Проблема в том, что когда я запускаю этот код, каждый сегмент змеи накапливается сверхуодной и той же координаты, и это выглядит как бегающий сегмент.Они не следуют, они группируются друг на друга.
Для меня логика выглядит солидной, так что же дает?