如何在 Swift 中将 SKTilemap 场景定位在屏幕中间

Posted

技术标签:

【中文标题】如何在 Swift 中将 SKTilemap 场景定位在屏幕中间【英文标题】:How to position SKTilemap Scene in the middle of screen in Swift 【发布时间】:2020-06-21 06:20:43 【问题描述】:

我在 Swift 5 中创建了一个 TilemapScene (CKTilemapScene.sks)。这基本上是为我的游戏项目放置一个瓦片地图背景。请参阅下面的第二个屏幕截图。

然后,在我的主要 swift 代码中,我使用标准代码加载所有背景。 但是,不知何故,瓦片地图没有居中。请参阅下面的第一个屏幕截图。但是,在屏幕的左下方。我试着玩锚点。那没有帮助。是不是我设置错了?

导入 UIKit 导入 SpriteKit 导入 GameplayKit

类 GameViewController: UIViewController

override func viewDidLoad() 
    super.viewDidLoad()
    
    if let view = self.view as! SKView? 

        if let scene = SKScene(fileNamed: "CKTilemapScene") 
            
            // Present the scene
            view.presentScene(scene)
        
        
        view.ignoresSiblingOrder = true
        
        view.showsFPS = true
        view.showsNodeCount = true
        view.showsPhysics = true
    


override var shouldAutorotate: Bool 
    return true


override var supportedInterfaceOrientations: UIInterfaceOrientationMask 
    if UIDevice.current.userInterfaceIdiom == .phone 
        return .landscape
        //.allButUpsideDown
     else 
        return .all
    

【问题讨论】:

【参考方案1】:

SKScene的位置设置为SKView的中心。

override func viewDidLoad() 
    super.viewDidLoad()

    if let view = view as? SKView 
        if let scene = SKScene(fileNamed: "CKTilemapScene") 
            scene.position = view.center
            view.presentScene(scene)
        
    
    //...

【讨论】:

以上是关于如何在 Swift 中将 SKTilemap 场景定位在屏幕中间的主要内容,如果未能解决你的问题,请参考以下文章

SKTileMap 从 GKNoiseMap 获取值

真实设备上的 SKTileMap 物理错误

使用 MLKit ios swift 尝试化妆

如何在 Swift 中将 Int 转换为字符

如何在 Swift 中将 JSON 写入 Realm

如何在 Swift 中将文本居中?