重启Sprite - Kit Game Swift

Lam*_*tos 2 ios sprite-kit 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()

    }
Run Code Online (Sandbox Code Playgroud)

//然后,对于其他情况,继续执行didBeging功能

`

Nik*_*Nik 5

如果您尝试重新启动场景,则可以显示相同的场景并重置为默认值:

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)
Run Code Online (Sandbox Code Playgroud)

将此代码放在您所在的任何场景中并希望重新启动.当您想要重新启动场景时应该调用它.

如果您尝试进行无缝转换,您可能只想显示动画(或执行交叉渐变).

或者,您可能想要在场景/菜单上创建游戏.这可能只是另一个SKNode,一旦游戏重置或甚至另一个场景变得可见.