【发布时间】:2016-04-23 00:46:46
【问题描述】:
我正在使用 Swift 和 SpriteKit 开发一个小游戏。当我为重新启动按钮添加SKSpriteNode 时,它无法正确缩放。
重启按钮的高度和宽度均为 100px。如果我不设置 scale ,它将覆盖整个屏幕并使屏幕显示为白色。我发现如果我将setScale 设置为 0.005,那么它只会出现在屏幕上,但尺寸不合适。
import Foundation
import SpriteKit
class EndScene: SKScene {
var restartBtn = SKSpriteNode()
override func didMoveToView(view: SKView) {
background()
restartGame()
}
func restartGame() {
restartBtn = SKSpriteNode(imageNamed: "restartBtn")
restartBtn.setScale(0.005)
restartBtn.position = CGPoint(x: self.size.width / 2, y: self.size.height / 4)
restartBtn.zPosition = 1
self.addChild(restartBtn)
}
func background() {
let bkg = SKSpriteNode(imageNamed: "Background")
bkg.size = self.frame.size
bkg.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2)
bkg.zPosition = -2
self.addChild(bkg)
}
}
这是这段代码的输出, Restart Button Output
更新
我将scene!.scaleMode = .AspectFill 放在didMoveToView 函数中,它有助于正确渲染SpriteNode 的形状。但我仍然必须setScale(0.001) 才能使重新启动按钮的大小适合屏幕。谁能帮助我我仍然缺少哪一行代码?
【问题讨论】:
标签: ios swift sprite-kit skspritenode