[英]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.