【问题标题】:Adding child SKNode to existing SKNode changes the touch area将子 SKNode 添加到现有 SKNode 会更改触摸区域
【发布时间】:2015-07-02 22:09:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios sprite-kit skspritenode sknode


    【解决方案1】:

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

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

    【讨论】:

    • 旋转节点以与 OP 所见一致的方式更改其边界框
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多