Перемещение спрайта с использованием сложного математического пути в AndEngine - PullRequest
2 голосов
/ 08 января 2012

Я новичок в программировании AndEngine.Я хочу переместить спрайт, воссоздающий сложную анимацию, прежде чем пользователь сможет с ней взаимодействовать.Начальное движение спрайта не так линейно и не так просто.Я хочу применить сложный математический алгоритм к координатам движущегося спрайта.Как мне этого добиться?Какие существующие функции я могу использовать в AndEngine?

1 Ответ

6 голосов
/ 08 января 2012

Рассчитайте свои позиции и сохраните их в двух float массивах.Каждая ячейка в первом массиве будет координатой X, а во втором массиве будет координатой Y.

Затем создайте объект Path.Убедитесь, что это объект AndEngine Path, а не обычный Android SDK (AndEngine org.anddev.andengine.entity.modifier.PathModifier.Path).Создайте свой Path следующим образом:

Path path = new Path(coordinatesX, coordinatesY);

Где coordinatesX и coordinatesY - это, конечно, float массивы.

Теперь все, что вам нужно сделать, это создатьPathModifier с вашим Path:

PathModifier modifier = new PathModifier(duration, path);
modifier.setRemoveWhenFinished(true);

(duration - это float, указывающее время, в течение которого объект будет двигаться по пути. Чем он меньше, тем быстрее объект перемещаетсяЭкспериментируйте с разными временами, чтобы выяснить, что работает лучше для вас.

Вызов setRemoveWhenFinished с аргументом true гарантирует, что модификатор пути будет незарегистрированным после завершения пути.

Тогда просто зарегистрируйте его в своем спрайте:

sprite.registerEntityModifier(modifier);

И все готово.

...