Переместить спрайт по склону

Я пытаюсь поменять местами спрайт с другим спрайтом. До сих пор я думаю, что могу каким-то образом использовать наклон между исходным местоположением двух спрайтов, чтобы переместить их, но я не уверен, как увеличить их положение вдоль этого наклона.

1 ответ

Решение

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

var p1 = sprite1.location
var p2 = sprite2.location

var vec = p2.subtract(p1)
vec.normalize()
vec.multiply(6) // I want it to advance 6 units per move

while (sprite1.location != sprite2.location) // best to check with some epsilon
  sprite1.location = sprite1.location.add(vec)
end
Другие вопросы по тегам