0
尋找在我的MonoTouch遊戲中處理方向的正確方法(雖然在Obj-C中的答案很好)。在OpenGL MonoTouch遊戲中的定位
我們希望支持LandscapeLeft和LandscapeRight方向,但保留原生操作系統方向,以便音量彈出窗口和通知中心面板不會顛倒。
這是相當混亂,因爲有幾種方法來完成我們所需要的:
- Info.plist設置的
- shouldrotate覆蓋在UIViewController中
- 設置UIDevice.CurrentDevice.Orientation
- 或只需掛入NSNotificationCenter並使用OpenGL執行旋轉,翻譯觸摸事件
我得到的最好工作是使用#1和#4,這似乎也是由於性能原因被Apple推薦的。我閱讀了一些文檔,指出使用OpenGL內容旋轉視圖(通過選項#2)可能會損害perf,請參閱性能部分中的here。 (我們希望我們的遊戲能夠在更老的iPod Touch上運行得非常好)
我的問題是,當旋轉LandscapeRight時,所有內容都在我的遊戲中正確繪製,但音量和通知中心在操作系統中顛倒。
有沒有更好的方法來解決這個問題?
我看了看在什麼一些其他遊戲出現做:
- 憤怒的小鳥 - 旋轉使用OpenGL,但工作適當LandscapeRight
- 跳出 - 用的UIViewController 旋轉
- 微小翅膀 - 根本不旋轉
我想得到像我的應用程序中的憤怒的小鳥一樣的旋轉。
我沒有在我面前的Mac來嘗試它,但我覺得我嘗試了這個選項,並遇到了我的遊戲縮放奇怪的問題。我注意到整個場景中的像素化,好像一切都被拉伸了(也許後緩衝器是肖像,而我的遊戲景觀)。你注意到你的遊戲中存在這個問題嗎? – jonathanpeppers
在我的UIView上將ContentMode設置爲TopLeft後,您的方法運行良好。我還必須在對GL.Ortho和Gl.Viewport的調用中反轉一些座標。我將不得不等待,看看是否真的有任何性能問題。 – jonathanpeppers
我的確有一個縮放問題 - 這是由於屏幕上的移動以及設備試圖重新縮放以使其保持在屏幕上。我允許設置屏幕縮放,但沒有將其切換回來以防止在遊戲屏幕中出現。 –