/ / Wie durchläuft man den Punkt in UIBezierPath swift? - ios, xcode, Schleifen, swift, uibezierpath

Wie durchläuft man den Punkt in UIBezierPath swift? - ios, xcode, Schleifen, swift, uibezierpath

Wie kann ich die UIBezierPath-Koordinaten des Kreises durchlaufen, damit ich das Punktobjekt über den kreisförmigen Pfad bewegen kann, wenn der Benutzer seinen Finger auf dem Bildschirm bewegt? (Art wie ein virtuelles Zahlenschloss)

let blueDotCategoryName = "blue"
var blueDot = SKSpriteNode()

//...

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
let touch = touches.anyObject() as UITouch
let touchLocation = touch.locationInNode(self)
let node = self.nodeAtPoint(touchLocation)
if node.name == blueDotCategoryName {
fingerIsOn = true
}
}



override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
if fingerIsOn {
let touch = touches.anyObject() as UITouch
let touchLocation = touch.locationInNode(self)
let prevTouchLocation = touch.previousLocationInNode(self)
let blueDot = self.childNodeWithName(blueDotCategoryName) as SKSpriteNode
// var newPosition = coordinates in circle UIBezierPath
// blueDot.position = ...
}
/*
var circle = UIBezierPath()
circle.addArcWithCenter(CGPoint(x: 0, y: 0), radius: (self.frame.width / 6.7), startAngle: 0, endAngle: 360, clockwise: true)
*/

}
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
fingerIsOn = false
}

Antworten:

0 für die Antwort № 1

Es gibt keine integrierte Methode, um dies für Sie zu tun,Sie müssen es also selbst schreiben. Es wird wahrscheinlich einfacher sein, wenn Sie den Bezier-Pfad als eine Reihe von Liniensegmenten erstellen (und wenn sie sich hinreichend nahe genug beieinander befinden, ist sie vom ursprünglichen Pfad nicht zu unterscheiden).

Nachdem ich das gesagt habe, gibt es angesichts Ihrer Beschreibung (ein "virtuelles Kombinationsschloss") die Frage, ob es nicht einige komplexe Gestenerkenner von Drittanbietern gibt, die den gesamten Prozess für Sie vereinfachen könnten:

Diese könnten Ihre Bemühungen starten.