【发布时间】:2013-11-26 18:16:02
【问题描述】:
有没有办法挂钩到 Sprite Kit 中的 SKNode 生命周期?具体来说,我想在节点从场景中移除时执行一些代码。
我想更详细地解决的用例: 我有一些相互交互的节点,我希望他们能够收到发生在其他节点上的某些事件的通知。例如,想象一个游戏,您可以在场景中点击一个节点,该节点的详细信息将出现在 HUD 上。当节点从场景中移除时,我希望 HUD 消失。 我计划使用 NSNotificationCenter 作为通知引擎。 每当一个节点从场景中移除时,我想发布一个通知。最简单的方法是绑定到 SKNode 上的生命周期方法(我的节点是 SKSpriteNode 的子类),例如 nodeWasRemovedFromParent,但我没有找到任何这样的方法。
如何做到这一点?
我通过在我的 SKSpriteNode 子类中重写 removeFromParent 方法并在调用超级实现之前发布通知来编写自己的解决方案。我不确定 removeFromParent 方法是否总是会被调用。例如,当我改变场景时它会被调用吗?
谢谢。
【问题讨论】:
标签: ios objective-c sprite-kit