So finden Sie die Fenstergröße in XNA

10

Ich wollte nur wissen, ob es eine Möglichkeit gibt, die Größe des Fensters in XNA herauszufinden. Ich möchte es nicht auf eine bestimmte Größe einstellen. Ich möchte wissen, welche Dimensionen derzeit automatisch angezeigt werden. Gibt es eine Möglichkeit, diese Informationen herauszufinden?

Mir ist klar, dass ich diese Informationen wahrscheinlich hätte herausfinden sollen (oder sie manuell einstellen müssen), bevor ich an dem Spiel arbeite, aber ich bin ein Anfänger und hoffe jetzt, in den Dimensionen zu arbeiten, in die ich bereits investiert habe. Danke!

Nick Van Hoogenstyn
quelle

Antworten:

15

Hier sind Ihre Optionen:

Um die Größe des Rückpuffers zu erhalten, verwenden Sie:

GraphicsDevice.PresentationParameters.Bounds(für ein Rechteck) oder BackBufferWidthund BackBufferHeight.

Sie möchten die Größe des Backpuffers, wenn Sie beispielsweise Ansichtsfenster festlegen, Screenshots machen usw.

Verwenden Sie zum Abrufen des Ansichtsfensters :

GraphicsDevice.Viewport.Bounds(für ein Rechteck) oder Widthund Height.

Die Größe des Ansichtsfensters ist das, was Sie beim Rendern von Inhalten verwenden möchten . Alle Koordinaten, an die Sie übergeben, SpriteBatchbefinden sich in Bezug auf das Ansichtsfenster im pixelausgerichteten Client-Bereich: (0,0) für das Pixel oben links bis (Breite-1, Höhe-1) für das untere rechte Pixel. Wenn Sie 3D-Arbeiten ausführen, reicht der Projektionsraum von (-1, -1) unten links im Ansichtsfenster bis (1,1) oben rechts.

Sie können die Größe und Position des Ansichtsfensters auf dem Bildschirm anpassen (für Effekte wie geteilten Bildschirm). Während es auf die Größe des Rückpuffers initialisiert wird, ist es nicht unbedingt immer dasselbe.

Beachten Sie Folgendes, wenn Sie Schnittstellenlayout-Aufgaben ausführen, insbesondere wenn Sie auf der Xbox 360 ausgeführt werden Viewport.TitleSafeArea. Hier erfahren Sie, welche Region auf Bildschirmen, die möglicherweise einen Teil der Grenze abschneiden, definitiv sichtbar ist.

Wenn Sie aus irgendeinem Grund tatsächlich mit dem Spielfenster selbst arbeiten, verwenden Sie Game.GameWindow.ClientBounds.

Andrew Russell
quelle
Vielen Dank! Ich hätte angeben sollen, dass es sich um ein 2D-Spiel handelt, aber es war nett von Ihnen, beide Antworten zu geben. Lesen Sie jetzt die Ansichtsfenster.
Nick Van Hoogenstyn
2

GraphicsDevice.Viewport.Bounds - Dies gibt Rectangle2D zurück und hat die Parameter Width und Height.

zacharmarz
quelle