Ios 将子SKNode添加到现有SKNode会更改触摸区域

Ios 将子SKNode添加到现有SKNode会更改触摸区域,ios,sprite-kit,skspritenode,sknode,Ios,Sprite Kit,Skspritenode,Sknode,我正在为场景创建一个SKNode,并在每个SKNode上记录触摸事件。我可以添加任意数量的内容,如果我触摸该节点,并且只有可见的节点才能看到日志消息,那么触摸操作将按预期工作。现在,如果我将另一个SKShapeNode添加到以前的任何SKNode中,触摸区域将扩展为更多的矩形,现在我看到日志消息,即使我在原始SKNode之外触摸 第一张图片显示了SKNode的原始触摸区域,第二张图片是向SKNode添加子SKShapeNode后的新触摸区域。添加的SKShapeNode为20x20,因此适合20

我正在为场景创建一个SKNode,并在每个SKNode上记录触摸事件。我可以添加任意数量的内容,如果我触摸该节点,并且只有可见的节点才能看到日志消息,那么触摸操作将按预期工作。现在,如果我将另一个SKShapeNode添加到以前的任何SKNode中,触摸区域将扩展为更多的矩形,现在我看到日志消息,即使我在原始SKNode之外触摸

第一张图片显示了SKNode的原始触摸区域,第二张图片是向SKNode添加子SKShapeNode后的新触摸区域。添加的SKShapeNode为20x20,因此适合20x100条

问题是我现在在触摸其他条时会得到多个触摸事件,因为它们重叠。这有什么办法吗


您似乎在为线条的每个角度使用单独的图形。相反,请尝试使用相同的图形,使直线处于0度,然后使用角度调整。我自己没有试过,但我认为它会解决你的问题


或者,尝试在touchesbeated方法中使用进行触摸识别。您可以检查触摸是否在任何节点内,并进行相应的处理。

旋转节点会以与OP看到的一致的方式更改其边界框