gpt4 book ai didi

ios - SKSpriteNode 无法正确缩放

转载 作者:行者123 更新时间:2023-11-30 13:28:55 25 4
gpt4 key购买 nike

我正在使用 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) 以使“重新启动”按钮的大小适合屏幕。谁能帮我看看我还缺少哪一行代码?

最佳答案

不要使用 .setScale,而是尝试使用 restartBtn.size = CGSize(Width: 50, Height: 50)

这使用了 Sprite Kit 的调整大小公式。

关于ios - SKSpriteNode 无法正确缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36805321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com