场景没有在SpriteKit中呈现

时间:2014-01-12 15:57:47

标签: ios sprite-kit

我正在使用SpriteKit制作游戏。 我正在检查播放器是否在更新方法中死了,如下所示:

-(void)update:(CFTimeInterval)currentTime
{
    if (self.player.dead) {
        [self gameOver];
    }
}

gameOver方法如下:

-(void)gameOver {
    SKView * skView = (SKView *)self.view;
    GameOverScene *gameOver = [GameOverScene sceneWithSize:skView.bounds.size];
    gameOver.scaleMode = SKSceneScaleModeAspectFill;
    [skView presentScene:gameOver transition:[SKTransition doorsOpenHorizontalWithDuration:1.0]];
}

由于某种原因,没有呈现GameOver场景,而是继续调用当前屏幕的更新方法。我做错了什么?

2 个答案:

答案 0 :(得分:1)

我认为问题可能是 self.player.dead 标志在更新方法内反复评估 YES ,多次致电 [self gameOver] ,由于1秒的持续时间,从未实际完成转换;您可以使用断点或日志记录轻松测试。在呈现新场景之前,请尝试在 - (void)gameOver 方法中调用 self.player.dead = NO

答案 1 :(得分:0)

尝试以下操作,看看它是否有所作为:

- (void)gameOver {
    SKScene *gameOver = [[GameOverScene alloc] initWithSize:self.size];
    SKTransition *doors = [SKTransition doorsOpenVerticalWithDuration:1.0];
    [self.view presentScene:gameOver transition:doors];
}

另外,请确保从当前场景调用gameOver。