在场景上制作游戏

时间:2015-01-14 06:36:59

标签: ios swift sprite-kit skscene

在我的游戏中,我想在红灯动画期间触摸屏幕时出现标签上的游戏。绿灯动画关闭时,红灯动画开启。当玩家在红灯动画期间触摸屏幕时,我希望游戏屏幕暂停并且标签上的游戏出现。到目前为止我有这个,但是当我尝试运行它时应用程序崩溃了。

错误讯息:

  

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'尝试添加已经拥有父级的SKNode:name:'(null)'text:'Game Over!点击再次播放'fontName:'Helvetica'位置:{1024,768}'

 override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    /* Called when a touch begins */


    if gameOverLabel.parent == nil
    {
        self.addChild(gameOverLabel)
    }

    println(score)

    scoreLabel.text = "\(score)"
}

1 个答案:

答案 0 :(得分:0)

试试这个。您将gameOverLabel设置为字体太大而且框架位于屏幕之外。这就是它不可见的原因。此外,你必须在游戏结束时停止游戏。

if (!self.paused)
{
    if isGreenLightON
    {
        score += 50
    }
    else
    {
        self.paused = true

        if (gameOverLabel.parent != nil)
        {
            gameOverLabel.removeFromParent()
        }
        gameOverLabel.fontName = "Helvetica"
        gameOverLabel.fontColor = UIColor.blackColor()
        gameOverLabel.fontSize = 24
        gameOverLabel.text = "Game Over! Tap to Play Again"
        gameOverLabel.position = CGPointMake(CGRectGetMidX(self.frame), self.frame.size.height - 50)
        self.addChild(gameOverLabel)
    }
}
else
{
    score = 0
    if (gameOverLabel.parent != nil)
    {
        gameOverLabel.removeFromParent()
    }
    self.paused = false
}
scoreLabel.text = "\(score)"