我試圖檢查這個SKSpriteNode是否已經從屏幕上移除來實現一段代碼,但如果它有但我似乎無法弄清楚。有沒有什麼方法可以檢查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)
」或什麼的?
我也試過在player.position.y> 568(4英寸顯示器)時測試,但它也沒有工作。
離開屏幕(如:當前不可見)不會刪除節點。您可以通過使用self.scene.view.frame和player.frame進行CGRectIntersectsRect測試來測試「不在屏幕上」。 – LearnCocos2D
最好的辦法是檢查像這個player.parent父屬性。如果這是零球員已被從父母中刪除。 –