[英]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.