2016-11-21 4 views
0

Я все еще новичок в UIKit, но я что-то работаю над созданием динамической структуры для создания монстров и их прохождения по заранее определенным маршрутным точкам из файл конфигурации.Кривая анимация в Swift и UIKit - параболическое движение от начальной/конечной точки

Итак, для данного монстра я начал настраивать простые путевые точки, например, переходить через экран, или идти по определенному пути, основанному на координатах (x, y). Каждый путь имеет ряд путевых точек, и монстр следует за ним, а затем меняет направление.

Это прекрасно работает, но теперь я хочу, чтобы монстры прыгали по дуге (так что-то квадратное/параболическое). Поэтому я подумал, что это довольно просто, просто создайте путевые точки для представления дуги, и я добьюсь этого. Прямо сейчас я просто делаю

SKAction.MoveBy(x,y, duration) 

Ну это сработало, но анимация не является гладким, потому что я только догадывался путевых точек, вместо того, чтобы использовать фактическую математическую параболическую функцию. Так что я сделал что-то вроде:

(5, 10), 
(5, 10), 
(10, 10), 
(15, 10), 
.. and then on the way down 
(-15, -10) 
.. 
etc 

Так что я думаю, что либо нужно сделать 2 вещи, которые я не уверен о:

  1. найти что-то (сайт/инструмент/математические функции?), Который может сгенерируйте более плавный, правильный набор (x, y) координат для дуг быстро для меня, поэтому я могу затем ввести их в свой файл конфигурации и добиться плавного прыжка монстра вдоль дуги. Я не помню эту математику из школы, это было слишком долго = /.
  2. Используйте какую-то функцию, встроенную в Swift, которая может сделать это для меня автоматически (я сделал некоторые исследования, но большая часть из них была либо старым объектом Objective-C, либо казалась безумно сложной).

Может ли кто-нибудь указать мне в правильном направлении?

Спасибо!

+0

Я не знаю много о наборе сюжетов, но если у вас есть способ сделать путешествие спрайтов по пути Безье, то квадратичный (не кубический) путь Безье - это именно то, что вам нужно. Парабола представляет собой квадратичную кривую, поэтому ее легко моделировать с помощью квадратичного безье (2 конечных пункта плюс единая контрольная точка). –

+0

Это интересно и может быть то, что я ищу, вы должны ответить как ответ, чтобы я может дать вам кредит. Легко ли настраивать квадратичную безье? – NullHypothesis

ответ

1

Я мало знаю о наборе сюжетов, но если у вас есть способ сделать путешествие спрайтов по пути Безье, то квадратный (не кубический) путь Безье - именно то, что вам нужно. Парабола представляет собой квадратичную кривую, поэтому ее легко моделировать с помощью квадратичного безье (2 конечных точки плюс одна контрольная точка).

Создание квадратичной кривой безье тривиально легко. вы указываете начальную и конечную точку и контрольную точку, а кривая следует за V, определяемой этими тремя точками.

+0

Сообщите нам, если вы можете использовать кривую Безье, чтобы ваши монстры следовали параболическому пути. –

+0

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

+0

Я ничего не знаю о SceneKit. Как вы анимируете монстра вдоль пути? Я могу показать вам, как создать 'UIBezierPath' или' CGPath' в параболической форме, и я мог бы показать вам, как оживить это с помощью 'UIView' или' CAAnimation', но не SceneKit. –

 Смежные вопросы

  • Нет связанных вопросов^_^