有没有办法检查SKSpriteNode是否已从父项中删除?

时间:2014-05-07 06:52:53

标签: ios objective-c sprite-kit

我正在尝试检查是否已从屏幕上删除此SKSpriteNode以实现一段代码(如果有)但我似乎无法弄明白。

我的代码;

if (player.position.y > self.frame.size.height) {
    NSLog(@"out of frame");
    [self runAction:[SKAction sequence:@[
                                         [SKAction waitForDuration:0.5],
                                         [SKAction runBlock:^{

        levelMenu *mainMenu = [[levelMenu alloc] initWithSize:self.size];
        [self.view presentScene:mainMenu transition:[SKTransition fadeWithDuration:0.6]];

    }],
                                         ]]];
}

但这不起作用。

我可以做些什么来测试从父母那里删除它的时间。即“If (player hasLeftScene)(player hasBeenRemovedFromParent)”之类的东西是什么?

我也试过测试播放器.position.y> 568(4英寸显示屏)但它也没有用。

1 个答案:

答案 0 :(得分:6)

检查node.parent。如果没有父母(从一个父母身上移除),则为零。

if (node.parent) {
// node has parent, was not removed
} else {
// node does not have parent, was removed
}