Auflösungsproblem

  • GM 8
  • Auflösungsproblem

    Hallo

    Mein Problem, ein Raum ist 1024 x 672 aber mein Netbook hat eine Auflösung von 1024 x 600 jetzt wird der Raum an die Auflösung vom Netbook angepasst aber so das alle Objekte nicht mehr richtig mit der Maus anklick bar sind. Man kann die Objekte nur anklicken, indem man ungefähr 50Px darunter klickt.

    Wie schaffe ich das der raum richtig dargestellt, wird von mir aus auch kleiner aber nicht verzerrt? Ich habe auch schon probiert mit Resolution zu arbeiten aber immer das selber entweder nicht anklickbar oder außerhalb des Bildes.
    Meine Webseite: jesoftmedia.de
  • Das duerfte aber nicht sein.

    hast du auch sichergestellt, dass alle Instances mit dem richtigen sprite_index versehen sind und die richtigen scale values haben?
    z.B. wenn deine Instances nur durch den Draw Event einen Sprite erhaelt, muss du zuvor im Create Event die Proportionen bestimmen z.B.

    GML-Quellcode

    1. sprite_index = sprite1;
    2. image_xscale=1; //je nachdem, was du vorgesehen hast
    3. image_yscale=1; // gleiches hier
    4. image_index=0; //oder was auch immer
    5. image_alpha=1; //normalerweise
    6. image_angle=0; //normal


    und im Draw Event musste dann auch nur die lokalen Instanz-Variablen verwenden:

    GML-Quellcode

    1. draw_sprite_ext(x,y,sprite_index,image_index,image_xscale,image_yscale,image_angle,image_alpha); //achte besonders auf die scale variablen und die x,y, variablen


    so sollte das auch klappen.
    Ansonsten, haste ein Fehler beim Auflisten/Aufrufen der Funktionen gemacht.

    normalerweise:

    GML-Quellcode

    1. globalvar dw, dh;
    2. global.dw = display_get_width();
    3. global.dh = display_get_height();
    4. display_set_all(global.dw,global.dh,blah,blah);
    5. window_set_fullscreen(true);
  • Nightrage schrieb:

    Das duerfte aber nicht sein.
    Leider passiert das beim GM tatsächlich. Als ich Thief of Passion am Netbook getestet hab ist genau das selbe passiert. Visuell wurde das Spiel zwar gestaucht und alles war sichtbar, aber Objekte jenseits meiner maximalen Y-Auflösung ließen sich nicht anklicken. Mein Ingame-Cursor (der einfach ein Objekt ist, das immer zu den Maus-Koordinaten springt) konnte im Spiel maximal zur Koordinate 599 runter, der Bereich in den Engine-Koordinaten von 600 bis 767 war zwar sichtbar, aber der Mauszeiger wollte nie dort hin. Die Ursache für das Problem ist klar. Der GM verwendet zum Prüfen der Mauskoordinaten die von Windows überlieferte Cursorposition. Das Strechting des GMs sorgt zwar dafür, dass man alles sieht, aber die Mauskoordinaten werden nicht automatisch entsprechend umgerechnet.

    Hab mich dem Problem aber noch nicht gewidmet und mir kommt jetzt spontan leider auch keine elegante Lösung in den Sinn (und auf dem PC hier habe ich GM nicht installiert). Aber was ginge, wäre, nicht die vorgefertigten Mausfunktionen des GM zu nutzen, sondern ein eigenes Mauscursor Objekt zu erstellen, das im Endstep-Event zur Maus springt, aber die Streckung beachtet.

    Etwa:

    GML-Quellcode

    1. obj_cursor.x = mouse_x
    2. obj_cursor.y = mouse_y/<vertikale Bildschirmauflösung>*room_height


    Dann müsstest Du das Anklicken aber selbst Lösen, etwa im Collision- oder Endstep-Event des Mauszeigerobjekts (und je nachdem im GML-Code prüfen ob im Moment die Maustaste gedrückt ist oder ob eine Kollision mit einem bestimmten Objekt besteht). Die Collisionmask des Mauszeigers sollte natürlich nur ein 1 Pixel großes Quadrat sein (ne andere Form wird mit einem Pixel eh nicht gehen ;P). Ist ne hässliche und aufwändige Lösung, aber sollte funktionieren.

    Wenn mir was einfacheres und schöneres in den Sinn kommt, poste ich es hier. Aber jetzt wo das Problem klar ist, wird Nightrage vielleicht mit was besserem ankommen? :rolleyes:
  • famous schrieb:

    Ich versteh dein Problem nicht, wenn du eine View hast kannst du diese doch an die vorhandene Bildschirmauflösung anpassen.?
    Hängt vom Spiel ab. Bei unserem Projekt etwa ist alles darauf ausgelegt in einem 1024x768 Bild zu laufen und der gesamte Room soll während der interaktiven Phase immer sichtbar sein. Die View anzupassen würde bedeuten, dass man runter scrollen muss oder den untersten Teil des Rooms garnicht zu Gesicht bekommen kann wenn man auf Scrolling verzichtet (und Scrolling ist etwas, was es bei uns garnicht geben soll). Die View verkleinern ist also nicht immer eine Lösung. Und wenn hier das Problem ist, dass Objekte nicht anklickbar sind, die zu weit unten sind, klingt's für mich nach nem Kandidaten für ein Game, wo es mit nem Verkleinern der View nicht getan ist.
  • famous schrieb:

    Proportionale Skalierung?
    Gerade die wollte zumindest mir und unter XP beim hier beschriebenen Problem nicht helfen - obwohl ich "keep aspect ratio" an hatte, wurde auf meinem Netbook nur vertikal gestaucht, wenn ich mich recht entsinne. GM 8.1 scheint echte Probleme mit manchen Auflösungen wie 1024x600 zu haben - ich weiß nicht wie es mit anderen Versionen aussieht.
  • Leider passiert das beim GM tatsächlich. Als ich Thief of Passion am Netbook getestet hab ist genau das selbe passiert. Visuell wurde das Spiel zwar gestaucht und alles war sichtbar, aber Objekte jenseits meiner maximalen Y-Auflösung ließen sich nicht anklicken. Mein Ingame-Cursor (der einfach ein Objekt ist, das immer zu den Maus-Koordinaten springt) konnte im Spiel maximal zur Koordinate 599 runter, der Bereich in den Engine-Koordinaten von 600 bis 767 war zwar sichtbar, aber der Mauszeiger wollte nie dort hin. Die Ursache für das Problem ist klar. Der GM verwendet zum Prüfen der Mauskoordinaten die von Windows überlieferte Cursorposition. Das Strechting des GMs sorgt zwar dafür, dass man alles sieht, aber die Mauskoordinaten werden nicht automatisch entsprechend umgerechnet.


    Zumindest bin ich nicht der Einzige mit dem Problem. Aber gibt es wirklich keine einfache Lösung für das Problem?
    Meine Webseite: jesoftmedia.de
  • hi,

    ich hab des selbe Problem bis eben gehabt, hat den ganzen tag gedauert. Hab aber ne Lösung gefunden. Es ist eigentlich ganz simpel.

    Hab alle kombinationen durch gespielt, und das hier kahm bei raus:

    ich hab auch dummer weise mein neues Spiel in 1920x1080 angelgt, und da dachte ich schon die tage das ich da wieder an ner Wand stehe und dachte ich muss mehrer versionen machen, mit der jeweiligen Resolution.

    schaus dir an!

    ...die produktion kann weiter gehen. :)
    Bilder
    • resolution.jpg

      467,78 kB, 1.289×875, 438 mal angesehen
  • ich hab neu Fragen....hierzu.

    mein Spiel ist in 1920 x 1080, wenn ich nun mein Spiel auf dem full HD Monitor starte sehe ich zwei mal das Spiel übereinander, einmal klein skalliert auf die größe im View01.

    abwohl die View00 an ist?????

    Wie mach ich nun verschiedene Auflösungen?
    - ich hatte die Idee, für jede Auflösung ein neuen ROOM zu machen. Im menü kann man dann die Auflösung auswählen, dann geht das Prog in das jeweilige Room.

    wie sonst kann mann auf die verschiedenen View's zugreifen? gibt bestimmt eine bessere lösung.