我正在尝试检查是否已从屏幕上删除此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英寸显示屏)但它也没有用。
答案 0 :(得分:6)
检查node.parent。如果没有父母(从一个父母身上移除),则为零。
if (node.parent) {
// node has parent, was not removed
} else {
// node does not have parent, was removed
}