ios – SKNode上的UITapGestureRecognizer:将坐标从UIView转换为SKNode

ios – SKNode上的UITapGestureRecognizer:将坐标从UIView转换为SKNode,第1张

概述我在UIView上有一个UITapGestureRecognizer和一个UIPanGestureRecognizer,上面有一个SKScene.平移手势识别器从左向右移动SKNode,并且我希望Tap手势识别器检测到平移的SKNode的孩子.平移工作正常,但我在检测水龙头时遇到问题 – Tap Gesture会触发相关方法,但我不确定如何将坐标从视图转换到场景到节点以检测水龙头是否在其中一个子节 我在UIVIEw上有一个UITapGestureRecognizer和一个UIPanGestureRecognizer,上面有一个SKScene.平移手势识别器从左向右移动SKNode,并且我希望Tap手势识别器检测到平移的SKNode的孩子.平移工作正常,但我在检测水龙头时遇到问题 – Tap Gesture会触发相关方法,但我不确定如何将坐标从视图转换到场景到节点以检测水龙头是否在其中一个子节点.

UIVIEw(带手势)→SKScene→平移节点→平移节点的子节点

如何检查轻击手势的触摸坐标是否为任何给定的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);        }    }}

}

解决方法 最后,我需要从建议的步骤中做更多的步骤 – 从SKVIEw→SKScene转换到包含我正在测试的节点的SKNode.
CGPoint touchLocation           = [sender locationOftouch:0 inVIEw:sender.vIEw];    CGPoint touchLocationInScene    = [[self.scene vIEw] convertPoint:touchLocation toScene:self.scene];    CGPoint touchLocationInNode     = [self.scene convertPoint:touchLocationInScene toNode:_containerNode];
总结

以上是内存溢出为你收集整理的ios – SKNode上的UITapGestureRecognizer:将坐标从UIView转换为SKNode全部内容,希望文章能够帮你解决ios – SKNode上的UITapGestureRecognizer:将坐标从UIView转换为SKNode所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1098333.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存