精灵套件场景没有呈现

Luc*_*cas 0 iphone xcode ios ios7 sprite-kit

我有一个sprite-kit游戏,我需要经常检查玩家是否输了

- (void)update:(NSTimeInterval)currentTime
{
 for (SKSpriteNode *sprite in self.alienArray ) {
    if (sprite.position.y < 10) {
        LostScene *lostScene = [[LostScene alloc] initWithSize: CGSizeMake(CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds))];
        NSLog(@"about to present");
        [self.view presentScene:lostScene transition:[SKTransition fadeWithDuration:0.5]];
    }

}
Run Code Online (Sandbox Code Playgroud)

}

但是当这个方法被调用时(我知道正在发生),没有场景出现.我究竟做错了什么?我认为它与过渡有关,因为当我把它拿出来时,它运作正常

小智 5

您应该添加现有场景的属性,如:BOOL playerHasLost并编辑您的更新方法:

- (void)update:(NSTimeInterval)currentTime
{
if(!playerHasLost)
{
for (SKSpriteNode *sprite in self.alienArray ) 
{
  if (sprite.position.y < 10)
  {
    playerHasLost = YES;
    LostScene *lostScene = [[LostScene alloc] initWithSize: CGSizeMake(CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds))];
    NSLog(@"about to present");
    [self.view presentScene:lostScene transition:[SKTransition fadeWithDuration:0.5]];
    break;//to get out of for loop
  }
}
}
}
Run Code Online (Sandbox Code Playgroud)

因此,只要精灵到达您将其视为丢失位置的位置,它就会将变量设置为YES,呈现场景并且不会再次执行.