Как изменить размер сцены в Xcode? - PullRequest
0 голосов
/ 14 марта 2019

Я хочу автоматически масштабировать размер моей сцены, потому что в моих GameScene.sks я могу выбрать несколько моделей iPhone только для размера сцены (iPhone 4s, iPhone SE, iPhone 6s и iPhone 6 Plus).Поэтому я пытаюсь автоматически масштабировать для поддержки всех моделей.

Это код в моем SKScene:

class GameScene: SKScene {

override init(size: CGSize) {

    super.init(size: size)
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}
.......

Синтаксис кажется правильным, но когда я переключаюсь в GameScene в симуляторе, приложение вылетает.Я новичок, так что может быть неправильно используется функция инициализации override.

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Я предлагаю вам установить scaleMode в GameViewController в методе viewDidLoad () вместо того, чтобы устанавливать каждый размер вручную.Вы можете установить scaleMode на aspectFill / aspectFit / resizeFill и т. Д. Вот пример кода.

class GameViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let scene =
      GameScene(size: view.bounds.size)
    let skView = self.view as! SKView
    scene.scaleMode = .aspectFill
    skView.presentScene(scene)
  }

Вот документ, который масштабирует содержимое сцены, чтобы подогнать его под представление.https://developer.apple.com/documentation/spritekit/skscene/scaling_a_scene_s_content_to_fit_the_view

0 голосов
/ 16 марта 2019
import SpriteKit

class GameScene: SKScene {
    let backgroundNode = SKSpriteNode()

    override func didMove(to view: SKView) {
        backgroundNode.size = CGSize(width: displaySize.width, height: displaySize.height)
        backgroundNode.color = .red
        self.addChild(backgroundNode)
    }
}
...