Всегда есть еще один способ сделать что-то - это программирование! Но, как Руба Голдберга показывает ниже, другой способ не может быть лучшим/простой способ:
Использование touchesEnded
вы делаете вид, как «Fling» жест, который может быть несколько ограничен в его способности ,
Пример: Если вы хотите, чтобы объект постоянно увеличивал скорость на некотором f из x/делал небольшие изменения пути (не обязательно поднимая палец), вы можете использовать touchesMoved
. Заполните его любыми вычислениями/функциями, которые вам нравятся.
Пример: перетащить узел с прикосновением:
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
//-Main touch processoereor
for touch in touches {
let TPOINT = touch.locationInNode(self)
my_super_cool_node!.position = TPOINT
// Put math stuff here, etc.
}
}
Это дает гораздо больший контроль над тем, что происходит с вашим спрайт из точки А в точку Б.
Вот хороший учебник:
http://www.globalnerdy.com/2016/02/02/writing-ios-games-with-swift-and-sprite-kit-part-2-responding-to-touches/
И материал от Apple: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIResponder_Class/#//apple_ref/occ/instm/UIResponder/touchesMoved:withEvent:
К сожалению, лучшие вещи в SpriteKit потребуют некоторых умных реализаций/математики и не могут быть выполнены с помощью редактора сцен и узлов.
Что вы имеете в виду - это довольно простая (математическая) функция, формула расстояния, поэтому очень выгодно сделать из нее фактический func
, так что вы можете настроить его и не писать вручную тонны кода для каждой вещи, которую вы хотите сделать. SK делает вещи очень легкими уже. Выполнение даже базового мира привет с вращающимися космическими кораблями было бы тысячей строк кода (или более) в тот же день с C++ Direct3d/OpenGL (и тонны передовой математики).
Редактор SK замечательный, и с небольшим программированием на бэкэнде вы можете делать полноценные игры только от редактора.
Зачем вам нужен другой способ? Он работает, как вы описываете ... Показывает, где вы начинаете, и где вы заканчиваете. Легко вычислить вектор между двумя точками. – Kendel
Возможно, Алекс хочет что-то _more_ своим движениям объектов :) см. Мой ответ. – Fluidity
Kendel, мне не нужен был другой способ, просто не хотел кодировать что-то готовое решение, похоже, что это самый простой способ сделать это ... – Alex