cocos2d 0.99-rc0にある標準の回転コードを使用して、縦向きと2つの横向きのモードをサポートしています。メニューを縦向きモードで表示すると、実際のゲームでは画面が横向きに回転します。問題は、ポートレートに戻ると、誰かがアンカーポイントなどを動かしたように、メインメニューシーン全体が画面の半分だけずれていることです。
何かアイデアはありますか?
cocos2d 0.99-rc0にある標準の回転コードを使用して、縦向きと2つの横向きのモードをサポートしています。メニューを縦向きモードで表示すると、実際のゲームでは画面が横向きに回転します。問題は、ポートレートに戻ると、誰かがアンカーポイントなどを動かしたように、メインメニューシーン全体が画面の半分だけずれていることです。
何かアイデアはありますか?
考えられる簡単な解決策は、シーンの開始時に方向を適用し、ワードがメニュー項目の位置を再適用して、すべてが整列するようにすることです。
画面の向きを変更するには、次のようにします。
まず、最初の行は init メソッドの内部に入ります。0.5 秒後に開始するようにタイマーを設定します。タイマーに入れると、私のゲームではシーンの遷移 (フェード) がスムーズに機能し、画面は回転/スナップしませんが、おそらくこれを使用する必要はありません。
[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
幸運を。