2

...フラストレーション。ゲームをランドスケープ モードでのみ実行したい。適切なキー/値を Info.plist ファイルに追加して、起動時にデバイスの向きを強制的に正しいものにしました。

私は現在、デバイスの座標空間に一致するように OpenGL 座標空間を回転させようとしています。ここで見つけたコードを使用しようとしていますが、機能していません。私のテスト ケースは中央に四角形を描画します。そのコードをすべて含めても、何も描画されていません。2番目の部分をコメントアウトすると(GL_PROJECTIONマトリックスモードのみを設定)、座標系正しいように見えます。でも回転させてほしい。これを行う方法と、ビューペン先を正しく設定する方法について少し戸惑っています。ヒントをお願いします。

また、将来的には、EAGLView を別の UIView サブクラスと交換する予定です。これを行うには、何か違うものが必要になりますか?

ありがとう!ランディ

4

1 に答える 1

2

plistが正しく設定されています。すべてのView Controllerに次のものが含まれていることを確認してください。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation==UIInterfaceOrientationLandscapeRight) ? YES : NO;
}

それなしの子ビューは、物事を台無しにする可能性があります。

また、UINavigationController などがある場合は、それをサブクラス化し、shouldAutorotateToInterfaceOrientation を実装する必要があります。

次に、viewdidload

- (void)viewDidLoad {
    [super viewDidLoad];

    CGRect  rect = [[UIScreen mainScreen] bounds];
    rect.size.height = 320;
    rect.size.width = 480;
    rect.origin.x = 0;
    rect.origin.y = 0;

    glView = [[EAGLView alloc] initWithFrame:rect pixelFormat:GL_RGB565_OES depthFormat:GL_DEPTH_COMPONENT16_OES preserveBackbuffer:NO];
    [self.view addSubview: glView];

    [glView addSubview: minimapView];
     //etc...

}
于 2011-01-26T19:52:41.380 に答える