暂停精灵套件场景

tem*_*emp 24 ios7 sprite-kit skview skscene

@property (SK_NONATOMIC_IOSONLY, getter = isPaused) BOOL paused;
Run Code Online (Sandbox Code Playgroud)

我发现这行代码可以添加到我的项目中,我将如何暂停整个游戏?

例如:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
for (UITouch *touch in touches)
{
    SKSpriteNode *pause = (SKSpriteNode*)[self childNodeWithName:@"pause"];
    CGPoint location = [touch locationInNode:self];
    // NSLog(@"** TOUCH LOCATION ** \nx: %f / y: %f", location.x, location.y);

    if([pause containsPoint:location])
    {
        NSLog(@"PAUSE GAME HERE SOMEHOW");
    }
}
Run Code Online (Sandbox Code Playgroud)

}

如您所见,我已设置按钮.当我选择它时,我将如何暂停整个场景?然后当有人点击恢复按钮时恢复它.

好的,我有一些建议打电话

  self.scene.view.paused = YES;
Run Code Online (Sandbox Code Playgroud)

除了这是问题,在我的app委托中

- (void)applicationWillResignActive:(UIApplication *)application{


SKView *view = (SKView *)self.window.rootViewController.view;
view.paused = YES;}
Run Code Online (Sandbox Code Playgroud)

- (void)applicationDidBecomeActive:(UIApplication *)application{

    SKView *view = (SKView *)self.window.rootViewController.view;
    view.paused = NO;
Run Code Online (Sandbox Code Playgroud)

当它实际上是SKScene时,我把它变成SKView类型.有任何解决这个问题的方法吗?您是否建议我通过重新输入所有代码来使我的所有场景成为视图?

And*_*eev 62

使用SKViewpaused财产:

斯威夫特:

scene.view?.paused = true
Run Code Online (Sandbox Code Playgroud)

目标C:

self.scene.view.paused = YES;
Run Code Online (Sandbox Code Playgroud)

这将停止所有动作和物理模拟.