TouchesBegan不会触发呈现的SKScene

时间:2014-02-04 18:05:59

标签: ios sprite-kit

我有一个SKScene,我在其中呈现另一个场景。以下是演示代码:

[self.view presentScene:[[LoseScene alloc] initWithSize:self.size] transition:[SKTransition crossFadeWithDuration:1.5]];

这是我丢失场景的初始代码:

-(id)initWithSize:(CGSize)size {
    if (self = [super initWithSize:size]) {

// code omitted
    }
    return self;
}

问题是LoseScene中的这个方法永远不会被调用:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

1 个答案:

答案 0 :(得分:1)

似乎你得到了它的工作,但如果其他人遇到这个问题,我想出了什么可能导致奇怪的行为。如果碰巧多次调用presentScene,可能会出现很多问题。如果presentScene在更新方法中,则会发生这种情况。

- (void)update:(NSTimeInterval)currentTime {
    [self.view presentScene:myScene transition: reveal];
}

视图不断呈现会导致各种事情破裂的场景。当你想要呈现场景并且事情应该正常工作时,确保只调用一次。一个简单的旗帜就可以了。

- (void)update:(NSTimeInterval)currentTime {
    if(_gameOver) {
        [self.view presentScene:myScene transition: reveal];
        _gameOver = NO;
    }
}