mam UITapGestureRecognizer
i UIPanGestureRecognizer
na UIView
z SKScene
na nim. Wykrywacz gestów przesuwania przesuwa SKNode od lewej do prawej i chcę, aby wykrywacz gestów do wykrywania wykrył potomek SKNode, który patrzy. Przesuwanie działa dobrze, ale mam problem z wykrywaniem kliknięć - Gest dotknięcia wywołuje odpowiednią metodę, ale nie jestem pewien, jak przekonwertować współrzędne z widoku do sceny na węzeł, aby wykryć, czy kran jest w jednym z węzły dzieci.UITapGestureRecognizer na SKNode: Konwersja współrzędnych z UIView do SKNode
UIView (z gestami) → SKScene → Przesuwanie węzłów → Dzieci z panoramowanie węzeł
Jak mogę sprawdzić, czy dotykowy kranu gest za koordynowanie jest dana 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);
}
}
}
}