У меня есть игра, которую я быстро анимирую, используя scenekit и предоставленную структуру анимации, основную анимацию.
Проблема, с которой я сталкиваюсь, заключается в том, что моя анимация не является гладкой. Перемещение узла из точки A в точку B приводит к небольшому увеличению скорости перемещения и небольшому снижению скорости, когда он приближается к желаемому положению. Я хочу, чтобы скорость оставалась одинаковой во всем. Это проблема, потому что мои анимации не двигаются очень далеко и происходят часто (2 раза в секунду + задержка вычислений), в результате чего они выглядят очень рывками.
Итак, мой вопрос: есть ли способ сделать скорость анимации одинаковой?
Изменить: просто для ясности я использую SCNTransaction. Мой код выглядит примерно так: Половина псевдокода
func simulate(){
SCNTransaction.begin()
SCNTransaction.setAnimationDuration(0.5)
SCNTransaction.setCompletionBlock{
//If no victory this simulate func is run again
checkVictory()
}
for all gameObjects{
object.position = calculateNewPos()
}
SCNTransaction.commit()
}