我正在SKNode
子类化,通过将许多节点添加到我的子类中来渲染由许多SKSpriteNodes
组成的映射。
一切正常,但我注意到我的节点子类的Frame
始终为 0。
我在文档中找不到任何有关此内容的内容,因此:我是否应该覆盖 Frame
属性并返回正确的值?
frame 属性是节点本身的框架,忽略任何子节点。对于SKNode来说,这是一个位置,但宽度和高度为零。
如果节点的类绘制内容,则帧为非空。 (https://developer.apple.com/reference/spritekit/sknode)
我读作:SKNode不绘制任何内容,因此将其为空是正确的。
节点及其子节点的帧由方法 calculateAccumulatedFrame() 提供,需要子树帧的函数应调用该帧,而不是引用 frame 属性。
因此,无需覆盖SKNode的帧。我从来没有,在一些应用程序中有类似的结构并且还没有遇到问题...