5
Sto disegnando con Sprite Kit. Vorrei rilevare quando i disegni dell'utente si intersecano.
Swift: rilevamento intersezione da kit sprite SKShapeNode disegni
Ho provato a seguire il codice ma non funziona. Sembra che il kit sprite non stia salvando tutti i punti:
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
touch = touches.anyObject() as UITouch!
for drawingPoint in drawingPoints{
if(touch.locationInNode(self) == drawingPoint){println(true)}
}
drawingPoints.append(touch.locationInNode(self))
}
Non ho molta familiarità con SpriteKit, ma presumo che il percorso rosso colleghi ogni punto di contatto con il successivo utilizzando un segmento di linea o una curva di Bézier. In tal caso devi controllare tutti i segmenti per l'eventuale intersezione. [Qui] (http://stackoverflow.com/questions/13999249/uibezierpath-intersect) è un problema simile in Objective-C, forse questo ti aiuta a iniziare. –
Grazie, darò un'occhiata! – user3673836
Un algoritmo più sofisticato è descritto qui: http://softsurfer.com/Archive/algorithm_0108/algorithm_0108.htm. –