2010-11-16 130 views
1

我正在使用cocos2d 0.99-rc0中的標準旋轉代碼來支持縱向+兩種橫向模式。我在縱向模式下顯示菜單,然後屏幕旋轉爲實際遊戲的橫向。問題在於,當我回到肖像時,整個mainmenu場景都被屏幕的一半關掉,就像有人移動了錨點或其他東西一樣。cocos2d屏幕方向問題

有什麼想法嗎?

回答

1

一個可能的簡單解決方案是在場景開始時應用方向,然後在病房重新應用菜單項的位置後使其全部對齊。

我執行以下操作來更改屏幕方向:

首先,第一行進入我設置一個計時器快速0.5秒之後開始init方法內。將它放入計時器意味着在我的遊戲中,場景過渡(淡入淡出)可以順利進行,屏幕不會隨即旋轉/倒轉,但您可能不需要使用它。

[self schedule:@selector(rotate:) interval:0.5]; 

-(void)rotate:(ccTime) dt{ 
    [[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft]; 
    [self unschedule:@selector(rotate:)]; 
} 

重點線低於,你不一定需要定時器:

[[CCDirector sharedDirector] setDeviceOrientation:CCDeviceOrientationLandscapeLeft]; 

當然你也可以改變此位爲不同的方向:

CCDeviceOrientationLandscapeLeft 
CCDeviceOrientationLandscapeRight 
CCDeviceOrientationPortrait 
CCDeviceOrientationPortraitUpsideDown 

好運。

+0

聽起來像一個真正的黑客,但嘿 - 如果沒有更好的解決方案,那麼這是最好的解決方案!感謝分享,一旦我完成一些其他的東西,我會再次看看這個。 – 2010-11-17 07:53:03