Ich habe ein UITapGestureRecognizer
und ein UIPanGestureRecognizer
auf einem UIView
mit einem SKScene
darauf. Der Pan-Gesten-Erkenner bewegt einen SKNode von links nach rechts, und ich möchte, dass der Tap-Gesten-Erkenner ein Kind des SKNode erkennt, der schwenkt. Das Schwenken funktioniert einwandfrei, aber ich habe Probleme, Taps zu erkennen - die Tap-Geste löst die entsprechende Methode aus, aber ich bin mir nicht sicher, wie die Koordinaten von der Ansicht in die Szene zum Knoten konvertiert werden, um zu erkennen, ob der Tap in einem von ist die Kinderknoten.UITapGestureRecognizer auf SKNode: Konvertieren von Koordinaten von UIView SKNode
UIView (mit Gesten) → SKScene → → Knoten Schwenk Kinder des Knotens Panning
Wie kann ich überprüfen, ob eine die Berührung eines Tippgeste Koordinate jedes gegebene SKNode?
-(void)tapAction:(UITapGestureRecognizer*)sender{
if (sender.state == UIGestureRecognizerStateEnded)
{
// handling code
CGPoint touchLocation = [sender locationOfTouch:0 inView:sender.view];
NSLog(@"TAP %@", NSStringFromCGPoint(touchLocation)
);
for (SKLabelNode *node in _containerNode.children) {
if ([node containsPoint:[node convertPoint:touchLocation fromNode:self.parent]]) {
//This is where I want the tap to be detected.
}
CGPoint checkPoint = [node convertPoint:touchLocation fromNode:self.scene];
NSLog(@"CheckPoint %@", NSStringFromCGPoint(checkPoint)
);
//NSLog(@"iterating nodes");
if ([node containsPoint:checkPoint]) {
NSLog(@"touch match %@", node);
}
}
}
}