在我看来,一个旨在简单的框架会有这样的方法,而不是像我现在正在做的那样从物理核算中删除每个节点:
[self enumerateChildNodesWithName:@"live" usingBlock:^(SKNode *node, BOOL *stop){
[node removeFromParent];
}];
如果这是一个菜鸟问题,我很抱歉,我刚刚开始使用 SpriteKit。谢谢!
在我看来,一个旨在简单的框架会有这样的方法,而不是像我现在正在做的那样从物理核算中删除每个节点:
[self enumerateChildNodesWithName:@"live" usingBlock:^(SKNode *node, BOOL *stop){
[node removeFromParent];
}];
如果这是一个菜鸟问题,我很抱歉,我刚刚开始使用 SpriteKit。谢谢!
它有“那个方法”。如果您查看SKPhysicsWorld 参考资料,您会找到该speed
属性。Speed = 0 表示暂停。
如果你想暂停场景,你可以这样做:
self.paused = YES;
这也将在您添加到场景中的所有节点上激增。
可以在单个节点上设置相同的标志。暂停节点的节点不能很好地配合碰撞检测,并且在您取消暂停它们之前不会运行任何基于动作的动画。
self.physicsWorld 有一些属性可能有助于“减慢物理速度” -
self.physicsWorld.gravity = CGVectorMake(0,-4.9);
例如,将是真实世界重力的 50%。实际数字并不重要,所以一定要调整重力值,直到感觉合适为止。这比您可以使用的下一个选项更受欢迎:
self.physicsWorld.speed = x;
其中 x 的默认值为 1,而 0 与暂停所有物理计算相同。
改变重力是首选,因为它也不会使物体反弹得更慢(例如)。
SKNode 有几种移除子节点的方法。
你可以做...
removeAllChildren
或者
removeChildrenInArray:
ETC...
编辑
等等,你在问什么?您的标题和问题不匹配。