簡體   English   中英

重啟Sprite - Kit Game Swift

[英]Restarting Sprite - Kit Game Swift

我使用SpriteKit創建了一個簡單的2D街機游戲,我正在嘗試添加一個評分系統。基本上游戲是一個方形精靈,必須跳過各種障礙。 所以我想要的是當玩家聯系對象以重啟整個游戲時。 游戲檢測到聯系(我之前測試過)但是當我刪除所有孩子然后運行我的游戲的基本主要功能時,我注意到舊物體一直在產生並且彼此混亂。

func didBegin(_ contact: SKPhysicsContact) {

    if (contact.bodyA.categoryBitMask == PhysicsCategory.Player && contact.bodyB.categoryBitMask == PhysicsCategory.Obstacles ) { //case where PLAYER collides with OBSTACLE

        print("I detect Contact")

        Scorelabel.text = "0"
        scoreCounter = 0


        self.removeAllActions()
        self.removeAllChildren()

        self.setupGame()

    }

//然后,對於其他情況,繼續執行didBeging功能

`

如果您嘗試重新啟動場景,則可以顯示相同的場景並重置為默認值:

let scene = GameScene(size: self.size) // Whichever scene you want to restart (and are in)
let animation = SKTransition.crossFade(withDuration: 0.5) // ...Add transition if you like
self.view?.presentScene(scene, transition: animation)

將此代碼放在您所在的任何場景中並希望重新啟動。 當您想要重新啟動場景時應該調用它。

如果您嘗試進行無縫轉換,您可能只想顯示動畫(或執行交叉漸變)。

或者,您可能想要在場景/菜單上創建游戲。 這可能只是另一個SKNode,一旦游戲重置或甚至另一個場景變得可見。

首先,你應該檢查這兩種情況,如果玩家是聯系人A或者玩家是聯系人B.其次,你應該分配你要刪除的對象,讓我們說障礙,變量,例如讓我們說對象B es the Obstacle,然后:contact.bodyB.node.removeFromParent(),您將成功刪除該對象。

暫無
暫無

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

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