Programm automatisch an Bildschirmauflösung anpassen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Programm automatisch an Bildschirmauflösung anpassen

    Hallo,

    ich würde gerne mein Programm automatisch an die Bildschirmauflösung anpassen. Zum Beispiel ich habe eine Auflösung von 1920x1080 und das Programm soll sich dann automatisch anpassen.
    Wenn ich die Größe des Raums standardgemäß auf 1920x1080 setze, dann ist ständig ein Teil unter meiner Taskleiste, das würde ich gerne vermeiden. Außerdem wäre das suboptimal für andere Bildschirmauflösungen, da dann ein großer Teil außerhalb des Bildschirms wäre (wenn die Auflösung niedriger ist als die Raumgröße). Auf Vollbild möchte ich verzichten, da der Benutzer die Möglichkeit haben soll das Programm zu verschieben und zu vergrößern/verkleinern.

    Ich nutze die Studio 2 Version, leider konnte ich nichts finden, was in diese Richtung tendiert.
    ( Es ist NICHT die Auflösung im Programm gemeint, sondern die Bildschirmauflösung des Monitors und die Anpassung der Fenstergröße vom Programm an der Bildschirmauflösung, um das nochmal zu unterstreichen :D ! )

    Würde mich sehr freuen, wenn mir da eine nette Person behilflich sein könnte :)
    Das Programm soll für Windows ausgelegt sein.

    ---

    Edit: Kann bitte ein Moderator oder Administrator den Thread in "Game Maker Studio" verschieben? Mir ist es leider erst wieder eingefallen, als ich in der Bearbeitung ein Label hinzufügen wollte :/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von icqgamer ()

  • Du setzt wohl dein Spiel nicht auf fullscreen. Der GM nimmt einem da schon viel scaling herumgetue ab.
    Ist dein Spiel 4:3 und dein Bildschirm 16:9, dann bekommst du schwarze Balken.
    Wenn aber deine Spiele Auflösung sich nicht mit der Bilschirmauflösung verträgt (gemeinsamer nenner), dann gehen entweder pixel verloren oder du hast subpixel die erscheinen. Du kannst also mit den display funktionen, deine raumgröße daran anpassen und dann auf fullscreen setzen.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Hallo,

    danke für deine Antwort. Das ist aber leider etwas anderes :D


    Punkte pro Zoll (DPI) ist ein Maß für den räumlichen Druck oder die Videodotdichte, insbesondere die Anzahl der einzelnen Punkte, die in einer Linie innerhalb der Spannweite von 1 Zoll (2,54 cm) angeordnet werden können. Wenn Sie mit mobilen Geräten (insbesondere Android Geräten) arbeiten, ist dies ein wichtiger Faktor, der berücksichtigt werden muss, da die für eine einzelne Bildschirmauflösung möglicherweise ungeeignet ist. Beispielsweise können Sie zwei Anzeigen mit der gleichen Auflösung von 400 x 800 haben, aber Anzeige 1 hat eine dpi von 60 und Anzeige 2 hat eine dpi von 30. In diesem Fall wird jeder Text oder Bild auf dem Display 2 viel größer erscheinen, obwohl die tatsächliche Auflösung die gleiche ist.

    Die Funktion ist viel mehr zum Skalieren gedacht :D

    @Aku_Ryou:


    icqgamer schrieb:

    Auf Vollbild möchte ich verzichten, da der Benutzer die Möglichkeit haben soll das Programm zu verschieben und zu vergrößern/verkleinern.
    Vollbild möchte ich nicht haben.^^ Ich muss irgendwie die Auflösung vom Monitor herausfinden, um die Fenstergröße vom Programm an die Bildschirmauflösung anzupassen. Also quasi ein "Semi-Vollbild", halt wo man noch oben die Leiste hat mit dem Minimieren, Vergrößern/Verkleinern, Beenden & dass der Nutzer selber die Möglichkeit hat das Fenster zu verschieben etc.
    Wie oben bereits erwähnt würde - wenn ich eine feste Raumgröße von 1920x1080 verwenden würde - ein Teil unter der Taskleiste verschwinden.

    Ist sowas überhaupt möglich in dem Game Maker?
  • Danke, werd ich mir mal anschauen. Sieht auf jeden Fall interessant aus. Ich melde mich dann später nochmal wieder

    Edit:

    @Aku_Ryou:
    Jo perfekt!
    Einmal mit dem Command das Fenster maximieren lassen, mittels window_get_height/width die Fenstergröße erfassen, anschleßend die Raumgröße anpassen und zum Schluss skalieren. Klappt alles!

    Jetzt wäre noch eine Frage, ob es möglich ist, dass wenn man jetzt das Fenster bspw. verkleinert durch zerren, dass da nichts skaliert wird, sondern der Rest quasi abgeschnitten wird (damit die Auflösung nicht im A* ist).
    Hoffe man kann mir folgen was ich meine.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von icqgamer ()

  • Sollte es nicht auch ohne die extension mit display_get_height() und display_get_width() gehen?

    Es sollte möglich sein abzufragen ob sich die window größe verändert hat und entsprechend die skalierung / view_port anzupassen.
  • Komischerweise macht er es dort nicht.
    Wenn ich display_get_height() ausgeben lasse, kriege ich den Wert 1080 zurück. Wenn ich damit die Raumgröße ändere, passiert jedoch nichts. (Ich ändere die Größe in einem Vorraum, danach gehe ich in den Hauptraum).
    Dazu kommt noch, dass bei einer Raumgröße/Fenstergröße von 1080 wieder ein Teil unter der Taskleiste wäre. Wenn ich das Spiel normal maximiere habe ich eine Höhe von 1017 ca., die restlichen Pixel wären dann die Taskleiste.

    Waren die display_* Funktionen nicht auch eigentlich eher für das Smartphone gedacht?
  • Was heißt den damit die Raumgröße ändern? Dafür gibts ja andere Funktionen die nichts mit "display_" zu tun haben, du möchtest damit ja nur die Auflösung auslesen und die Werte wo anders verwenden. Zwar gibt es Smartphone spezifische display_ Funktionen, aber der PC hat ja genauso ein Ausgabegerät dessen Parameter du unter Umständen gerne abfragen möchtest. In dem Fall die Auflösung des Monitors.

    Für deinen Anwendungsfall ist das maximieren des Fensters und Abfrage der Fenstergröße wohl doch die bessere Lösung.