7

我有一个 SKSpriteNode,在SKNode *_fgLayer.

现在,当我暂停或取消暂停游戏时,我希望 SKSpriteNode 保持原位而不旋转或掉落。如果我简单地使用_fgLayer.paused = YES;SKSpriteNode 并不会停留在原地,而是会旋转并掉落。如果我physicsBody.dynamic = NO;在暂停和 取消暂停时设置physicsBody.dynamic = YES;它可以工作。

但是,经过几次尝试后,我总是会遇到以下崩溃:

"Assertion failed: (typeA == b2_dynamicBody || typeB == b2_dynamicBody), function SolveTOI, file /SourceCache/PhysicsKit/PhysicsKit-4.6/PhysicsKit/Box2D/Dynamics/b2World.cpp, line 670."

所以,我猜设置 aphysicsBody.dynamic = NO;和 back 是行不通的。

有没有人知道
如何在游戏暂停时暂停动态物理体以保持原位?

4

2 回答 2

22

尝试将你的 PhysicsWorld.speed 设置为 0.0:

scene.physicsWorld.speed = 0.0

苹果 SKPhysicsWorld 参考

于 2014-03-09T12:34:13.070 回答
3

设置 scene.view.paused = YES 对我有用 - 特别是当子节点上运行有操作时。

self.scene.view setPaused:YES

于 2015-12-14T14:31:08.843 回答