在我的游戏中,我想在红灯动画期间触摸屏幕时出现标签上的游戏。绿灯动画关闭时,红灯动画开启。当玩家在红灯动画期间触摸屏幕时,我希望游戏屏幕暂停并且标签上的游戏出现。到目前为止我有这个,但是当我尝试运行它时应用程序崩溃了。
错误讯息:
由于未捕获的异常'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)"
}
答案 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)"