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,呈现场景并且不会再次执行.
| 归档时间: |
|
| 查看次数: |
1226 次 |
| 最近记录: |