簡體   English   中英

如何在Sprite Kit中的場景外刪除節點

[英]How to remove node when become outside the scene in Sprite Kit

我試圖刪除節點時出現在場邊,我嘗試這種方法來做到這一點

if( CGRectIntersectsRect(node.frame, view.frame) ) {
   // Don't delete your node
} else {
   // Delete your node as it is not in your view
}

但似乎沒有任何幫助將不勝感激

從性能的角度來看,這不是最好的方法,但如果你在場景中覆蓋update方法,你將能夠編寫每幀執行的代碼。

class GameScene : SKScene {

    var arrow : SKSpriteNode?

    override func update(currentTime: NSTimeInterval) {
        super.update(currentTime)

        if let
            arrow = arrow,
            view = self.view
        where
            CGRectContainsRect(view.frame, arrow.frame) == false &&
            CGRectIntersectsRect(arrow.frame, view.frame) == false {
                arrow.removeFromParent()
        }
    }
}

注意事項

請記住,您在更新方法中編寫的每個代碼都是每幀執行一次 (60fps游戲每秒60次),所以您應該非常小心。 除非絕對必要,否則您不希望在update寫入的典型內容:

  1. 創建對象
  2. 循環
  3. 遞歸調用
  4. 任何需要太多時間執行的瘋狂代碼

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM