Подтвердить что ты не робот

Приостановка сцены набора спрайтов

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

Я нашел эту строку кода, которую мог бы добавить в мой проект, как бы приостановить всю игру?

Например:

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

}

Как вы можете видеть, у меня установлена ​​кнопка. Когда я его выберу, как бы приостановить всю сцену? И затем возобновите его, когда кто-то нажал кнопку возобновления.

ОК. У меня есть совет позвонить

  self.scene.view.paused = YES;

За исключением этой проблемы, в моем делетете приложения

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


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

и

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

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

Я делаю его типом SKView, когда на самом деле это SKScene. В любом случае, чтобы исправить это? Вы предлагаете мне сделать все мои сцены в виде, переименовав весь код?

4b9b3361

Ответ 1

Используйте SKView paused свойство:

Swift

scene.view?.paused = true

Цель C:

self.scene.view.paused = YES;

Это остановит все действия и физическое моделирование.

Ответ 2

Использование сцены для приостановленной функциональности

self.scene?.view?.paused = true