Я пытаюсь создать игру «Змея», в которой движение змеи основано не на сетке, а на свободной форме, и у меня возникают проблемы с выяснением того, как заставить конечные сегменты следовать за головой.Самое простое решение состоит в том, чтобы выполнить цикл от хвоста до головы и установить позицию тока в позицию следующего сегмента, то есть: segment[i].position = segment[i - 1].position
.Это прекрасно работает, но я получаю все сегменты, сгруппированные вместе на расстоянии всего одного пикселя (или около того).Это не очень привлекательно.
Чтобы победить, я создал массив для последних 15 позиций и выдвинул последнюю позицию до конца.Затем в каждом кадре я извлекаю первый элемент из массива и использую его, давая мне snapshot
того, где был сегмент 15 кадров назад.Это работает отлично, но производительность действительно снижается, постоянно вызывая new()
и перетасовывая массив.Сборщик мусора Flash дает мне ад.
Кто-нибудь может подумать о других решениях?
Я работаю над Flash, но не думаю, что решение действительно основано на каком-либо языке.
Спасибо!