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