Il ya toujours une autre façon de faire quelque chose - c'est la programmation! Mais, comme Rube Goldberg montre ci-dessous, une autre façon peut-être pas le meilleur/plus simple:
L'utilisation touchesEnded
vous faites un peu comme un geste « fling », qui peut être quelque peu limitée dans ses capacités . Exemple, Si vous voulez que l'objet gagne continuellement de la vélocité à certains f de x/fasse de petits changements de trajectoire (sans nécessairement avoir à lever le doigt), vous pouvez utiliser touchesMoved
. Remplissez-le avec tous les calculs/fonctions que vous aimez.
Exemple: faites glisser un nœud avec votre contact:
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.
}
}
Cela vous donne beaucoup plus de contrôle sur ce qui se passe à l'image-objet du point A au point B.
Voici un bon tutoriel:
http://www.globalnerdy.com/2016/02/02/writing-ios-games-with-swift-and-sprite-kit-part-2-responding-to-touches/
Et des trucs d'Apple: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIResponder_Class/#//apple_ref/occ/instm/UIResponder/touchesMoved:withEvent:
Malheureusement, les meilleures choses dans SpriteKit vont nécessiter des implémentations intelligentes/mathématiques, et tout ne peut pas être fait avec l'éditeur de scène et les nœuds. Ce que vous parlez de faire est une fonction assez routinière (math), la formule de la distance, donc il est plutôt avantageux d'en faire un 10 réel, de sorte que vous puissiez le personnaliser et ne pas avoir à écrire manuellement un tonne d'un code pour chaque chose que vous voulez faire. SK rend les choses super faciles déjà. Faire même le monde de base salut avec des vaisseaux spatiaux spinny aurait été mille lignes de code (ou plus) dans la journée avec C++ Direct3d/OpenGL (et des tonnes de mathématiques avancées). L'éditeur SK est génial, et avec un peu de programmation sur le backend, vous pouvez réellement créer des jeux complets à partir de l'éditeur.
Pourquoi avez-vous besoin d'une manière différente? Cela fonctionne comme vous le décrivez ... Montre où vous commencez, et où vous finissez. Facile à calculer un vecteur entre les deux points. – Kendel
Peut-être Alex veut quelque chose de plus à ses mouvements d'objet :) voir ma réponse. – Fluidity
Kendel, je n'ai pas besoin d'une manière différente, je n'ai pas voulu coder pour quelque chose qui a une solution prête, semble que c'est la manière la plus facile de le faire ... – Alex