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

She*_*tah 1 objective-c ios 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]];

    }],
                                         ]]];
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

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

我也试过测试播放器.position.y> 568(4英寸显示器),但它也不起作用.

Dvo*_*ole 6

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

if (node.parent) {
// node has parent, was not removed
} else {
// node does not have parent, was removed
}
Run Code Online (Sandbox Code Playgroud)