簡體   English   中英

SpriteKit GameScene旋轉錯誤

[英]SpriteKit GameScene Rotation Bug

我最近在遇到這個應用程序時遇到問題,同時嘗試使該應用程序具有通用性和縱向性(以前的版本僅在iPhone上橫向使用)。 現在,該應用將以縱向打開,並且看起來正確,但是在旋轉設備時仍處於縱向。

應用程式錯誤

目前,這是我旋轉設備的所有代碼(有效):

override func shouldAutorotate() -> Bool {
    return true
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
        return .AllButUpsideDown
    } else {
        return .All
    }
}

但是,這只會旋轉設備,而不會旋轉包含我的游戲的實際GameScene。 如果應用是從橫向主屏幕啟動的,則游戲將保持橫向。

為了進行測試,我可以從模擬器主屏幕退出並重新啟動該應用,然后游戲將再次正常運行, 直到設備旋轉為止

如何始終以正確的方向呈現GameScene?

你需要確保你的SKView保存您的SKScene設置與之相匹配的是一個包含幀的邊界。 您可以在InterfaceBuilder中或通過代碼使用“自動布局”來執行此操作。

正如Good Doug所說,請嘗試設置skView大小。

在代碼中,您將像這樣從gameViewController加載第一個場景。 (如果您不使用場景sks文件,則此方法有效)

    let skView = view as! SKView!
    let scene = StartScene(size: skView.bounds.size)

    skView.ignoresSiblingOrder = true
    scene.scaleMode = .AspectFill

    skView.presentScene(scene)

同樣,讓游戲以縱向和橫向運行似乎是一個非常糟糕的主意,它將給您帶來很多我什至不會嘗試的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM