【发布时间】:2016-09-01 19:24:39
【问题描述】:
我正在使用 SpriteKit 制作我的第一款游戏,其中敌人从一侧进入屏幕并从另一侧穿过屏幕。我注意到,在游戏后期,当渲染不同类型的敌人时,FPS 下降并且 CPU 使用率接近 100%(~95-99%)。我想知道是否有办法在场景中获取准确的节点数(不仅仅是在屏幕上呈现的节点数),以判断我是否没有正确删除它们。我已经有一个更新的全局节点计数器,它似乎工作正常——总节点数通常是一致的。还有其他我可以做的事情来尝试调试吗?谢谢!
【问题讨论】:
-
写一个递归函数,从场景开始,计算孩子。还要覆盖 deinit,并在那里添加一个打印语句。这会告诉你节点是否正在死亡。
-
@Knight0fDragon 你认为删除这些节点可能失败会导致如此高的 CPU 使用率吗?至于递归函数,你的意思是这样的吗?
enumerateChildNodesWithName("//.") { (node, _) -> Void in print("Node: \(node.name)") } -
是的,不删除节点是个问题
标签: swift sprite-kit frame-rate