Pausing a sprite kit scene
Asked Answered
L

3

27
@property (SK_NONATOMIC_IOSONLY, getter = isPaused) BOOL paused;

I found this line of code that I could add into my project, how would I pause my whole game?

For example:

-(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");
    }
}

}

As you can see, I have the button set up. When i select it, how would I pause the whole scene? And then resume it when someone hits a resume button.

OK SO I got some advice to call

  self.scene.view.paused = YES;

except here is the problem, in my app delegate

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


SKView *view = (SKView *)self.window.rootViewController.view;
view.paused = YES;}

and

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

    SKView *view = (SKView *)self.window.rootViewController.view;
    view.paused = NO;

I make it a type SKView, when it is actually an SKScene. Anyway to fix this? Do you suggest that I make all my scenes into views by retyping all the code?

Leoine answered 6/2, 2014 at 3:6 Comment(1)
You seem to be confused about Scenes and Views. You play your skscene ON an skview. Pausing either the SKScene or the SKView pauses the game, but as Andrey suggests below is the best method.Mcfall
C
64

Use SKView's isPaused property:

Swift:

scene.view?.isPaused = true

Objective C:

self.scene.view.isPaused = YES;

This will stop all actions and physics simulation.

Craggy answered 6/2, 2014 at 4:13 Comment(0)
U
2

Use Scene to Paused Functionality

self.scene?.view?.paused = true
Uganda answered 8/8, 2015 at 5:34 Comment(0)
A
0

Property 'paused' has been renamed to 'isPaused'

scene?.view?.isPaused = true
Absentminded answered 8/4, 2020 at 19:13 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.