Я разрабатываю небольшую игру, используя Swift & SpriteKit. Когда я добавляю кнопку SKSpriteNode
для перезагрузки, она не масштабируется должным образом.SKSpriteNode не правильно расчесывается
Размер кнопки перезапуска составляет 100 пикселей по высоте и ширине. Если я не устанавливаю масштаб, он охватывает весь экран и делает экран белым. Я понял, что если я 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
UPDATE
Я положил scene!.scaleMode = .AspectFill
прямо внутри didMoveToView
функции, и это помогло в оказании форму SpriteNode правильно. Но все же у меня есть setScale(0.001)
, чтобы размер кнопки Restart соответствовал экрану. Может ли кто-нибудь помочь мне, какую строку кода мне еще не хватает?
Я тоже пробовал это, но это не дает никакого другого результата. Чтобы использовать CGSize, я должен установить ширину и высоту «0,1», чтобы сделать ее видимой на экране, и она по-прежнему отображается в овальной форме, а не в раунде. – Haadi