我有一个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
答案 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;
}
}