【发布时间】:2017-05-22 21:10:25
【问题描述】:
所以我在代码中添加了两个标签节点,希望一个隐藏而另一个显示,然后在游戏开始后反之亦然。
class GameScene: SKScene {
// Declarations
let startLabel:SKLabelNode = SKLabelNode()
let scoreLabel:SKLabelNode = SKLabelNode()
var score = 0
override func didMoveToView(view: SKView) {
// Properties
startLabel.fontSize = 20
startLabel.fontColor = UIColor.blackColor()
startLabel.position = CGPointMake(self.frame.width*0.5, self.frame.height*0.5)
startLabel.text = "Touch Paddle To Begin"
startLabel.hidden = false
self.addChild(startLabel)
scoreLabel.fontSize = 20
scoreLabel.fontColor = UIColor.blackColor()
scoreLabel.position = CGPointMake(self.frame.width*0.5, self.frame.height*0.75)
scoreLabel.text = "\(score)"
scoreLabel.hidden = true
self.addChild(scoreLabel)
然后,当触碰 Paddle 时,将启动 moveBall() 函数并开始游戏。这是我交换标签的地方。
func moveBall() {
// Setting Labels
self.startLabel.hidden = true
self.scoreLabel.hidden = false
// Starting game
self.ball.physicsBody?.dynamic = true
但是,它只在某些时候有效。它会完美运行,然后不做任何更改,我将再次运行它,并且只会显示一个标签。然后再次显示另一个标签,或者 startLabel 将仅显示一帧然后消失。
免责声明:我真的不知道如何编码,只是对游戏有了一个想法,并正在努力将其变为现实。抱歉,如果解决方案很简单。对我的代码的任何建议也将不胜感激。谢谢!
【问题讨论】:
-
你在哪里调用 moveBall()?
-
检查标签的 zPosition 并在您的
GameViewController.swift中将ignoreSiblingOrder设置为false?如果您有背景图片,我想知道是否有时可以在其后面绘制标签?
标签: swift sprite-kit sklabelnode