【发布时间】:2023-03-27 14:41:01
【问题描述】:
我的 SpriteKit 游戏中有几个 SKSpriteNode,例如用于暂停和游戏结束的场景和按钮的背景。现在我在didMoveToView 中声明并添加它们,并使用如下内容:
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 我的意思是将它们展示在其他节点之上。例如,当用户点击一个按钮时,想象一下出现在屏幕上的暂停场景。现在我在一个类中声明它,定位它们并在
didMoveToView中执行addChild并将它们设置为隐藏。然后,当用户与暂停按钮交互时,我希望它们出现在其他节点上方。我尝试hidden = false,但它们仍然不可见。虽然如果我单击恢复按钮应该所在的位置,我可以取消暂停游戏。 @M321K 我现在更新了我的代码!
标签: ios swift sprite-kit