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

时间:2015-07-02 22:09:30

标签: ios sprite-kit skspritenode sknode

我为场景创建了一个SKNode,并在每个单独的SKNode上记录触摸事件。我可以添加任意多个,触摸按预期工作,如果我触摸节点,只有可见节点,我会看到日志消息。现在,如果我将另一个SKShapeNode添加到以前的任何一个SKNode中,触摸区域将扩展为更多的矩形,现在即使我在原始SKNode外部触摸,我也会看到日志消息。

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

问题是我现在在触摸其他条形时会发生多次触摸事件,因为它们重叠。有没有办法解决这个问题?

Touch area shown in blue for that SKNode New touch area after adding a child SKShapeNode

1 个答案:

答案 0 :(得分:2)

您似乎为线的每个角度使用单独的图形。而是尝试使用相同的图形,你的线在0度,然后使用zRotation角度。我自己没试过,但我认为它会解决你的问题。

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