首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雪碧图工具包在另一个SKNode下面选择SKNode

雪碧图工具包在另一个SKNode下面选择SKNode
EN

Stack Overflow用户
提问于 2014-12-16 16:53:15
回答 1查看 108关注 0票数 1

我正在使用Sprite Kit创建一个iOS应用程序&我正在尝试选择(onTouchBegan)一个位于另一个SKNode下面的SKNode。其结构为: FirstLayer(SKNode) - SecondLayer(SKNode) &第三层(SKNode)。我正在尝试选择SecondLayer并在onTouchMove中移动它。目前的问题是,touch现在可以识别3rdLayer。你能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2014-12-16 17:48:48

为了详细解释斯科特的评论,任何SKNodezPosition属性本质上都是它所在的层,较高的层编号“更接近”屏幕的前面。因此,如果您想让nodeB位于nodeA之上,那么nodeA应该有一个比a的数字更大的zPosition,例如:

代码语言:javascript
复制
nodeA.zPosition = 1
nodeB.zPosition = 2

如果您在创建节点时设置了节点的zPosition,则可以在'touchesBegan‘方法中对接触到的节点的zPosition设置条件检查。按照上面的示例,如果您想要触摸nodeA而不是nodeB,则需要检查被触摸节点的zPosition是否等于1

代码语言:javascript
复制
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint location = [touch locationInNode:self];
    SKNode *node = [self nodeAtPoint:location];

    if(node.zPosition == 1){
        //do stuff to nodeA here
    }
}

我想这就是Scott要说的,我希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27500742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档