ios - 当子类化 SKNode 时,Frame 属性是否应该返回非空值?

标签 ios sprite-kit sknode

我正在对 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/

相关文章:

ios - 多选联系人的 CNContactPickerViewController UI 更改

ios - 如何在swift 2中设置随机颜色的计时器?

ios7 - 寻找子SKNode的绝对位置?

swift - SpriteKit中如何控制节点的速度

ios - 无法使用 iOS 11 为 http 禁用 App Transport Security

ios - 修改另一个 View Controller 的对象

swift - 按 home 按钮时暂停 NSTimer,并在应用程序位于前台后再次启动它们

swift - 如何在 SpriteKit 中创建逼真的纺车

ios - 使用 UIView 作为 UIButton 的背景?

ios - 有什么方法可以在 Swift 中逐渐加快游戏速度?