我正在使用Spritekit并希望进行命中测试,这是直观的。 换句话说:我得到了一个位置x,y,并想知道哪个是最受欢迎的节点。 (并且“最顶层”是指用户实际看到的最顶层的那个。)
我没有找到SpriteKit的任何预定义功能,它给了我这个功能。 实际上我发现SpriteKit本身使用了一些反直觉命中测试,see here。
我自己实现这个想法的想法是计算一些全局z排序,如DobroćudniTapir在答案here中所描述的那样。
我认为这可能有用,令我困惑的是文档中的陈述:
重要说明:SKCropNode和SKEffectNode节点类会改变场景渲染行为。这些节点的子节点作为单独的节点树独立呈现,结果将呈现到包含裁剪或效果节点的树中。有关更多信息,请参阅使用其他节点类型。
在“了解节点树的绘图顺序”下面找到here。
我没有找到引用的“使用其他节点类型”这一点,所以我不知道SKCropNodes或SKEffectNodes应该如何以及为什么要改变绘图顺序......
所以对以下问题的回答可以帮助我:
更新
我刚发现报告的行为here不正确。
正如评论中所提到的,我指向了nodeAtPosition或nodesAtPosition。我使用here中的代码进行了测试。
结果并不令人满意。两个问题:
有些图片为1.: