在对 SKNode 进行子类化时,Frame 属性是否应返回非空值



我正在SKNode子类化,通过将许多节点添加到我的子类中来渲染由许多SKSpriteNodes组成的映射。

一切正常,但我注意到我的节点子类的Frame始终为 0。

我在文档中找不到任何有关此内容的内容,因此:我是否应该覆盖 Frame 属性并返回正确的值?

frame 属性是节点本身的框架,忽略任何子节点。对于SKNode来说,这是一个位置,但宽度和高度为零。

如果节点的类绘制内容,则帧为非空。 (https://developer.apple.com/reference/spritekit/sknode)

我读作:SKNode不绘制任何内容,因此将其为空是正确的。

节点及其子节点的帧由方法 calculateAccumulatedFrame() 提供,需要子树帧的函数调用该帧,而不是引用 frame 属性。

因此,无需覆盖SKNode的帧。我从来没有,在一些应用程序中有类似的结构并且还没有遇到问题...

最新更新