Как сделать скорость спрайта одинаковой?
Начал писать простейшую игру чисто что бы лучше разобраться со SpriteKit в среде Xcode на языке swift. Моя игра просто заключается в том чтобы спрайт(объект) который находиться на экране перемещался в то место на которое мы нажали пальцем, я реализовал это так:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let location = touch.location(in: self)
ZombieNode.run (SKAction.move(to: CGPoint(x: location.x, y: location.y), duration: 1))
}
}
Тут все работает нормально, мы нажимаем пальцем на кнопку и спрайт движется туда, но возникла проблема что от того насколько я далеко нажму пальцем от спрайта будет меняться его скорость, это происходит потому что я реализую это через такое действие:
ZombieNode.run (SKAction.move(to: CGPoint(x: location.x, y: location.y), duration: 1))
Тут все логично действие происходит за 1 секунду поэтому чем дальше расстояние тем больше скорость - чтобы пройти его за это время, но как мне это изменить? Мне надо сделать так, чтобы независимо от расстояния была одинаковая скорость. Помогите пожалуйста, как это сделать?
Ответы (1 шт):
Вам нужно определить duration в зависимости от расстояния и нужной скорости.
(вектор расстояния от ноды до location) / скорость = duration