nodesAtPoint找不到我的节点

时间:2015-02-03 03:25:20

标签: sprite-kit

我有一个SKSpriteNode,其纹理周围有明显的alpha边距。纹理是92x92点;由于α边缘,节点的可触摸帧最终会小得多(40x40)。如果它发生在92x92纹理中的任何地方,我希望触摸注册。

我使用nodesAtPoint检测touchesBegan中的节点。但是,如果您触摸Alpha边距,则不会检测到该节点。我尝试通过覆盖我的SKSpriteNode中的calculateAccumulatedFrame来改变它,但似乎没有做任何事情。我的方法很少和不可预测地被称为。我假设一个节点没有子节点,SpriteKit引用frame属性而不使用calculateAccumulatedFrame方法。

任何解决方案?

1 个答案:

答案 0 :(得分:0)

我不知道如何真正改变SpriteKit在纹理中对alpha的行为方式,但作为替代解决方案,我覆盖了我的场景节点.AtPoint。

如果由于某种原因必须这样做,请记住CGRect的原点位于rect的左下方而不是像SKNode那样的中心。