我在我的SpriteKit游戏中有几个SKSpriteNodes,像背景暂停和游戏结束场景和按钮。现在我宣布和didMoveToView
加入他们,并使用了诸如:如何在需要时产生SKSpriteNode?
let pauseButton = SKSpriteNode(imageNamed: "pauseButton")
let pauseBackground = SKSpriteNode (imageNamed: "pauseBackground")
let resumeButton = SKSpriteNode (imageNamed: "resumeButton")
然后,我初始化它们:
self.pauseButton.anchorPoint = CGPointMake(0.5, 0.5)
self.pauseButton.position = CGPointMake(CGRectGetWidth(self.frame) - self.cookieSpot/3, CGRectGetMaxY(self.frame) - self.cookieSpot/3)
pauseButton.size = self.pauseButton.size
pauseButton.name = "pauseButton"
pauseButton.zPosition = 1000
pauseBackground.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
self.pauseBackground.hidden = true
self.pauseBackground.name = "pauseBackground"
self.pauseBackground.zPosition = +1
resumeButton.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMinY(self.frame) + self.resumeButton.size.height * 2 + self.resumeButton.size.height - self.resumeButton.size.height/4)
self.resumeButton.hidden = true
self.resumeButton.name = "resumeButton"
self.resumeButton.zPosition = +1
然后将其添加:
self.addChild(pauseBackground)
self.addChild(resumeButton)
self.addChild(gameOverBackground)
当它不需要,当用户正在点击一个暂停按钮时,我试图使用这样的东西:
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
switch self.nodeAtPoint(location) {
case pauseButton:
self.pauseBackground.hidden = false
self.resumeButton.hidden = false
self.scene?.view?.paused = true
case resumeButton:
self.pauseBackground.hidden = true
self.resumeButton.hidden = true
self.scene?.view?.paused = false
default:
println("not good")
}
}
这根本不适合我。他们正在产卵我猜,但他们是看不见的。在不需要的时候应该如何存储这些节点,并在适当的时候产生它们?
“产卵”是什么意思? – sangony 2015-04-02 00:48:00
这应该工作。也许它与暂停按钮的初始化?为我们发布 – MaxKargin 2015-04-02 00:50:32
@sangony我的意思是将它们呈现在其他节点之上。例如,当用户点击一个按钮时,可以考虑出现在屏幕上的暂停场景。现在我在类中声明它,放置它们并在'didMoveToView'中执行'addChild'并将它们设置为隐藏。然后,当用户与暂停按钮交互时,我希望它们出现在其他节点上方。我尝试'hidden = false',但它们仍然是不可见的。尽管如果我点击简历按钮的位置,我可以取消暂停游戏。 @ M321K我已经更新了我的代码! – Burundanga 2015-04-02 11:05:59