Orientierung im OpenGL MonoTouch-Spiel

  • Auf der Suche nach dem richtigen Weg, um die Orientierung in meinem MonoTouch-Spiel zu handhaben (obwohl die Antworten in Obj-C in Ordnung sind).

    Wir suchen Unterstützung LandscapeLeft- und LandscapeRight-Orientierungen, behalten jedoch die native Betriebssystemorientierung bei, sodass das Popup- und Benachrichtigungscenter-Bedienfeld nicht auf dem Kopf stehen.

    Dies ist ziemlich verwirrend, da es mehrere Möglichkeiten gibt, dies zu erreichen Was wir brauchen:

    1. Info.plist-Einstellungen
    2. sollten die Überschreibung in UIViewController
    3. Einstellung von UIDevice.CurrentDevice.Orientation
    4. oder haken Sie sich einfach in das NSNotificationCenter und führen Sie eine Rotation mit OpenGL durch, indem Sie Berührungsereignisse übersetzen
    5. > p> Das Beste, was ich zur Arbeit bekommen habe, ist # 1 und # 4, was auch aus Leistungsgründen von Apple empfohlen wird. Ich habe einige Dokumentationen gelesen, die besagen, dass das Drehen einer Ansicht (über Option # 2) mit OpenGL-Inhalten Perf schaden kann /WorkingwithEAGLContexts/WorkingwithEAGLContexts.html "rel =" nofollow "> hier im Abschnitt Leistung. (Wir möchten, dass unser Spiel auch auf älteren iPod Touches ziemlich gut läuft.)

      Mein Problem ist, dass beim Drehen von LandscapeRight alles in meinem Spiel richtig gezeichnet wird, aber nicht das Volumen und die Benachrichtigung Center stehen im Betriebssystem auf dem Kopf.

      Gibt es eine bessere Möglichkeit, dies zu tun?

      Ich habe mir angesehen, was Einige andere Spiele erscheinen zu tun:

      1. Angry Birds - drehen sich mit OpenGL, funktionieren jedoch in LandscapeRight
      2. Jump Out - dreht sich mit UIViewController
      3. Tiny Wings - dreht sich überhaupt nicht

      Ich möchte die Rotation genau so machen, wie Angry Birds in meiner App funktioniert.

    22 November 2011
    jonathanpeppers
1 answer
  • Ich habe die unterstützten Ausrichtungen in den Projektzieleinstellungen festgelegt, aber ich drehe nur eine Ansicht ohne OpenGL.

     // Override to allow orientations other than the default portrait orientation.
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
        return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
    }
     
    22 November 2011
    Matt H