我有一个关于在带物理引擎的Sprite Kit游戏中暂停的问题。游戏包含一个球,它在SpriteScene中移动,并具有以下参数:
self.ball.physicsBody.friction = 0;
self.ball.physicsBody.linearDamping = 0;
self.ball.physicsBody.restitution = 1.0f;
self.ball.physicsBody.affectedByGravity = NO;
self.ball.physicsBody.usesPreciseCollisionDetection = YES;
问题在于,当我暂停游戏时,我调用了这些方法:
self.scene.physicsWorld.speed = 0;
self.ball_velocity = self.ball.physicsBody.velocity;
self.ball.physicsBody.velocity = CGVectorMake(0, 0);
self.ball.speed = 0;
self.ball.physicsBody.dynamic = NO;
[self.scene.view setPaused:YES];
当恢复时,请调用以下内容:
self.scene.physicsWorld.speed = 1;
self.ball.physicsBody.velocity = self.ball_velocity;
self.ball.physicsBody.dynamic = YES;
self.ball.speed = 1;
[self.scene.view setPaused:NO];
这会停止球的动画,但是当恢复时,球的位置会改变,看起来好像在暂停期间一直在移动。
顺便说一下,在iOS 8上它可以正常工作,但在iOS 9上总是失败。
有什么建议吗?!!