Sprite kit SpriteKit:确定命中测试的绘图顺序
我正在使用Spritekit,希望有一个直观的命中测试。 换句话说:我得到了一个位置x,y,想找出哪个节点是被击中的最上面的节点。(我所说的“最顶端”是指用户实际看到的最顶端。) 我没有找到SpriteKit的任何预定义功能来提供此功能。 实际上,我发现SpriteKit本身使用了一些反直觉的命中测试 我自己实现这一点的想法是计算一些全局z排序,如Dobroćudni Tapir在回答中所述 我认为这可能行得通,让我困惑的是文档中的陈述: 重要提示:SKCropNode和SKEffectNode节点类会改变场景渲染行为。这些节点的子节点作为单独的节点树独立渲染,结果渲染到包含裁剪或效果节点的树中。有关详细信息,请参见使用其他节点类型 在“了解节点树的绘图顺序”下查找 我没有找到引用的“使用其他节点类型”点,因此我不知道SKCropNodes或SKEffectNodes应如何以及为什么更改绘图顺序 因此,以下问题的答案可以帮助我:Sprite kit SpriteKit:确定命中测试的绘图顺序,sprite-kit,hittest,skeffectnode,skcropnode,Sprite Kit,Hittest,Skeffectnode,Skcropnode,我正在使用Spritekit,希望有一个直观的命中测试。 换句话说:我得到了一个位置x,y,想找出哪个节点是被击中的最上面的节点。(我所说的“最顶端”是指用户实际看到的最顶端。) 我没有找到SpriteKit的任何预定义功能来提供此功能。 实际上,我发现SpriteKit本身使用了一些反直觉的命中测试 我自己实现这一点的想法是计算一些全局z排序,如Dobroćudni Tapir在回答中所述 我认为这可能行得通,让我困惑的是文档中的陈述: 重要提示:SKCropNode和SKEffectNode
- SpriteKit是否提供了一些检索图形顺序的功能
- 如果没有,您认为我的自定义实现工作正常吗?(如何裁剪或影响节点来破坏它?)
- 你能给我指一下关于这个问题的信息吗?就像丢失的“使用其他节点”文章一样
SK编程指南明确规定,命中测试按相反的绘制顺序进行。这似乎是你想要的,而且定义得很好。你对此有什么参考资料吗?我的发现表明情况并非如此。如果我错了。你能指出SpriteKit中的一个函数,在那里我可以显式地对某个位置执行命中测试吗?这对你的代码逻辑有什么重要意义?关键是我从硬件中获取需要处理到场景中的事件。此时,我需要决定将事件引用到哪个节点。因此,我现在需要知道哪个节点位于绘图顺序顶部的位置x,y。问题是我没有找到任何东西来获得这个绘图顺序,也没有问SpriteKit类似“哪个是位置x,y的顶部节点”@NieLernend See(搜索标题为命中测试顺序与绘图顺序相反的部分)。