2011-11-22 3 views
0

내 MonoTouch 게임에서 오리엔테이션을 처리하는 적절한 방법을 찾으십시오. (Obj-C의 답변은 괜찮지 만).OpenGL MonoTouch 게임의 오리엔테이션

LandscapeLeft 및 LandscapeRight 방향을 지원하지만 볼륨 팝업 및 알림 센터 패널이 거꾸로되어 있지 않도록 기본 OS 방향을 유지합니다.

우리가 필요로하는 무엇을 달성하는 방법은 여러 가지가 있기 때문에 그것은 매우 혼란 :

  • 을 UIDevice.CurrentDevice.Orientation
  • 설정 UIViewController에
  • 에서

    1. 의 Info.plist 설정
    2. shouldrotate 재정의 또는 NSNotificationCenter에 연결하고 OpenGL로 회전을 수행하여 터치 이벤트 번역

    제가 일하게 된 가장 좋은 이유는 # 1과 # 4를 사용하는 것입니다. 성능상의 이유로 Apple에서 권장하는 것 같습니다. OpenGL 콘텐츠로보기 (옵션 # 2를 통해)를 돌리면 성능이 손상 될 수 있다고 말하는 일부 문서를 읽습니다. 성능 섹션의 here을 참조하십시오. (이전의 iPod touch에서도 게임을 잘 실행하고 싶습니다.)

    내 문제는 게임에서 RightRight를 돌리면 모든 것이 정상적으로 그려지지만 볼륨과 알림 센터가 거꾸로되어 있다는 것입니다.

    더 좋은 방법이 있나요?

    내가 할 몇 가지 다른 게임 나타나는 것을 살펴했다 :

    1. 화가 조류 - 그러나 LandscapeRight 적절하게 작동, OpenGL을 함께 회전
    2. 점프 아웃 -
    3. 작은 UIViewController에
    4. 함께 회전 날개는 전혀 회전하지 않습니다.

    저는 Angry Birds가 내 응용 프로그램에서 작동하는 것과 똑같은 회전을하고 싶습니다.

  • 답변

    1

    프로젝트 대상 설정에서 지원되는 방향을 설정했지만 OpenGL을 사용하지 않고보기 만 회전합니다.

    // Override to allow orientations other than the default portrait orientation. 
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
        return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
    } 
    
    +0

    나는 그것을 시험해보기 위해 내 앞에 Mac이 없지만이 옵션을 시도하고 기발한 게임 성능에 문제가있는 것 같습니다. 모든 것이 뻗어있는 것처럼 내 장면 전체에 픽 셀 레이션을 보았습니다 (어쩌면 백 버퍼는 내 게임 환경에서 초상화 였을 것입니다). 게임에서 그 문제를 눈치 챘습니까? – jonathanpeppers

    +0

    내 UIView에서 ContentMode를 TopLeft로 설정하면 메서드가 꽤 잘 작동합니다. GL.Ortho와 Gl.Viewport에 대한 호출에서 일부 좌표를 뒤집어 야했습니다. 나는 정말로 어떤 perf 문제가 있는지 기다려야 할 것이다. – jonathanpeppers

    +0

    한 번 스케일링 문제가 발생했습니다. 화면에서 벗어난 움직임과 화면에 계속 표시되도록 조정하려는 장치 때문에 발생했습니다. 설정 화면을 확장 할 수 있도록 허용했지만 게임 화면에서 설정 화면을 다시 전환하지 않았습니다. –