我正在对 SKNode
进行子类化,通过将这些节点添加到我的子类中来渲染由许多 SKSpriteNodes
组成的 map 。
一切运行良好,但我注意到我的节点子类的 Frame
始终为 0。
我在文档中找不到任何有关此内容的信息,因此:我是否应该覆盖 Frame
属性并返回正确的值?
最佳答案
frame 属性是节点本身的框架,忽略任何子节点。对于 SKNode,这是一个位置,但宽度和高度为零。
The frame is non-empty if the node’s class draws content. (https://developer.apple.com/reference/spritekit/sknode)
我的理解是:SKNode 不绘制任何内容,因此它为空是正确的。
节点及其子节点的框架由方法calculateAccumulatedFrame()提供。需要子树框架的函数应该调用它而不是引用框架属性。
所以应该不需要覆盖 SKNode 的框架。我从来没有在一些应用程序中拥有类似的结构 并且还没有遇到问题...
关于ios - 当子类化 SKNode 时,Frame 属性是否应该返回非空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41419039/