1

cocos2d 0.99-rc0にある標準の回転コードを使用して、縦向きと2つの横向きのモードをサポートしています。メニューを縦向きモードで表示すると、実際のゲームでは画面が横向きに回転します。問題は、ポートレートに戻ると、誰かがアンカーポイントなどを動かしたように、メインメニューシーン全体が画面の半分だけずれていることです。

何かアイデアはありますか?

4

1 に答える 1

1

考えられる簡単な解決策は、シーンの開始時に方向を適用し、ワードがメニュー項目の位置を再適用して、すべてが整列するようにすることです。

画面の向きを変更するには、次のようにします。

まず、最初の行は 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

幸運を。

于 2010-11-16T21:17:16.803 に答える