【问题标题】:How to resize a scene size in Xcode?如何在 Xcode 中调整场景大小?
【发布时间】:2019-03-14 18:41:57
【问题描述】:

我想自动缩放场景的大小,因为在我的 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 init函数用错了。

【问题讨论】:

    标签: ios swift sprite-kit skscene


    【解决方案1】:
    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)
        }
    }
    

    【讨论】:

      【解决方案2】:

      我建议您在 viewDidLoad() 方法中的 GameViewController 中设置 scaleMode,而不是手动设置每个尺寸。可以设置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)
        }
      

      这里是 Scaling a Scene's Content to Fit the View 的文档。 https://developer.apple.com/documentation/spritekit/skscene/scaling_a_scene_s_content_to_fit_the_view

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-21
        • 2018-07-05
        • 2015-01-12
        • 1970-01-01
        • 2019-12-24
        相关资源
        最近更新 更多