Sprite kit NodeStatPoint找不到我的节点

Sprite kit NodeStatPoint找不到我的节点,sprite-kit,Sprite Kit,我有一个SKSpriteNode,它的纹理周围有一个明显的alpha边缘。纹理为92x92点;由于alpha边界,节点的可触摸帧最终要小得多(40x40)。如果它发生在92x92纹理中的任何地方,我希望触摸记录 我检测触摸中的节点从NodeStatPoint开始。但是,如果触摸alpha边距,则不会检测到节点。我试图通过覆盖SKSpriteNode中的CalculateAccumeratedFrame来改变这一点,但似乎什么也没做。我的方法很少被不可预测地调用。我假设如果一个节点没有子节点,Sp

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

我检测触摸中的节点从NodeStatPoint开始。但是,如果触摸alpha边距,则不会检测到节点。我试图通过覆盖SKSpriteNode中的CalculateAccumeratedFrame来改变这一点,但似乎什么也没做。我的方法很少被不可预测地调用。我假设如果一个节点没有子节点,SpriteKit引用frame属性而不使用calculateacumeratedframe方法


有解决方案吗?

我不知道如何实际更改SpriteKit在纹理中有关alpha的行为方式,但作为替代解决方案,我覆盖了场景的节点集点


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

我不完全理解。您的图像比92x92大,但由于透明的边距,它最终的大小是92x92?你想在比精灵框架更大的框架上注册触摸吗?我更新了问题。我一直在使用92x92纹理,效果很好,但当我给它们添加更多的不可见边距时,我注意到触摸在纹理中的任何地方都不会出现——只有在中间,我的头顶上没有alpha。。您可以将您的雪碧添加到另一个具有清晰颜色的雪碧中。手动将父精灵的大小设置为92x92?