Grösseres Windows als Raum selbst, OutsideRoom als schwarzen Rand?

  • GM 8
  • Grösseres Windows als Raum selbst, OutsideRoom als schwarzen Rand?

    Hallo, nochmal an alle. ;)

    Ich hab da so zwei bis drei Probleme über die ich hier im Forum noch keine Lösung gefunden habe. Sollte ich es Übersehen haben dann verzeiht diese sinnlose Post.

    Auch ein Danke an alle die sich etwas Zeit genommen haben meine Post zu dem Spiel CombieCreation wenigsten, wenn auch Wortlos, anzusehen!! :thumbsup:

    Also zum eigentlichem Problem in einem anderem Game das Mouse controlliert ist.

    Es hat sich gezeigt das es für den Spieler von Vorteil wäre wenn das Fenster des Spieles etwas grösser als der eigentliche Raum wäre. Da die Spielfigur nicht von der Mouse verdeckt sein soll, habe ich den Hacken "Display the Cursor" entfernt. Da es eine Übergabe einer vorgeschriebenen Bewegung im Spiel zur Mousecontrolle gibt, verwende ich den Befehl "window_mouse_set(x,y)" im move free Event, da sonst die Spielfigur zur Mouse rennt, was nicht besonders schön ist. Das klappt auch wunderbar.

    Doch nun will ich das Fenster grösser als den Raum machen(Problem1), und hab da keine wirkliche Lösung gefunden. Das Spiel ist auf "Fixed scale100%" eingestellt und wenn ich Fullscreen mode einstelle, sieht der Spieler seine Mouse ausserhalb des Spielfeldes nicht mehr, was ich (Problem2) besch... finde. Aussedem funkt dann der Befehl "window_mouse_set(x,y)" auch nicht mehr richtig, da der Sprung der Mouse sich kommischerweise nicht mehr auf die tatsächliche position der Spielfigur, sondern ausserhalb der Spielfläche befindet (Problem3). Scheinbar vermutet der GM die Position der Spielfigur nicht zentriert im in der Mitte des geöffneten Fensters sondern irgendwo links oben, als würde sich die Spielfigur und der Raum sich dort oben befinden und schon wieder läuft meine Spielfigur in Richtung einer Position ausserhalb des Spielfeldes!!

    Das gleiche passiert auch wenn der Spieler die Fenstergrösse selbst wählen kann.

    Deshalb bräuchte ich hilfe in ein paar Dingen.

    (Problem1) Kann mann im GM das Game in einem gösseren Fenster als der Raum starten (brauche einen schwarzen Rand um das Spielfeld) was aber nicht gleich FullScreen bedeutet! Bin Anfänger. Bitte erklärt genau wie "GML"-Codes dort eingebracht werden müssen. GELÖST

    (Problem2) Gibt es nen Display_cursor-Befehl wenn sich die Mouse im Spielfeld befindet? GELÖST

    Danke Ponyman7

    (Problem3) Gibts ne andere möglichkeit die Mouse zur Spielfigur zu bringen, die sich nicht bei Veränderung der Fenstergrösse verrechnet?


    Habs jetzt so gelöst. Da Ich weis an welcher Position sich mein Ship bei der übergabe befindet, nehm ich die vom Spieler eingestellte Fenstergröse als Mass. Somit sieht der Code so aus!!!

    GML-Quellcode

    1. window_mouse_set(window_get_width()/2 -154,window_get_height()/2 +148)// Die Windowsmitte +plus/minus die Position von dort


    Danke
    Aktuelles Game: "Pikslar" mit Online Hiscore





    PS: Will mit dieser Frage mal fragen, ob jemand zur zeit, Zeit hat. Suche Grafiker/Pixler










    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Wildor ()

  • 1. View aktivieren (unter Raumeinstellungen) und port on screen entsprechend einstellen (z.B. Raum 640x480, port on screen 1024x768 ).

    2. Im Draw-Event execute a piece of code:

    :event_draw:

    GML-Quellcode

    1. if (room_width <= 1024 && room_height <= 768) //evtl. weitere Abfragen nötig...
    2. {
    3. //Cursor anzeigen (weiss Befehl grad nicht auswendig. In der Hilfe einfach nach 'Cursor' suchen)
    4. }


    3. Sollte mit View-Befehlen locker zu lösen sein (ich verstehe das Problem nicht richtig).

    Lg
    Michael
  • Scheinbar bin ich zu blöd.

    Das sind meine Ergebnisse. Bekomms nicht in die Mitte, oder man sieht die Wiederholung des Bg.





    Bei Problem3: Befehl "window_mouse_set(x,y)" setzt doch die Windowsmouse auf einen bestimmten punkt. Bei mir auf den Spieler. Das funkt auch wenn das Game in einem normalen Fenster, der Raumgrösse entsprechend, geöffnet wurde. Die Koordinaten für die Mouse sind aber im Vollbildmodus nicht auf meinene Spielfigur.
    Bilder
    • falsch1.png

      115,39 kB, 440×620, 106 mal angesehen
    • falsch2.png

      48,62 kB, 440×620, 96 mal angesehen
    Aktuelles Game: "Pikslar" mit Online Hiscore





    PS: Will mit dieser Frage mal fragen, ob jemand zur zeit, Zeit hat. Suche Grafiker/Pixler










    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Wildor ()

  • Also manchmal tun mir die Leute die hier Fragen stellen ein wenig Leid. Kommentare wie
    Hast du es schon mal mit vborder und hborder probiert? Die sind meines Wissens nach genau dafür da.
    sind einfach nicht hilfreich. Bevor hier irgendwelche Vermutungen aufgestellt werden, wie wär's wenn man vorher mal kurz nachprüft ob das was man da schreibt auch stimmt? Tut es nämlich nicht.


    Und jetzt zu deinen Fragen:
    (Problem1) Kann mann im GM das Game in einem gösseren Fenster als der Raum starten (brauche einen schwarzen Rand um das Spielfeld) was aber nicht gleich FullScreen bedeutet! Bin Anfänger. Bitte erklärt genau wie "GML"-Codes dort eingebracht werden müssen.

    GML-Quellcode

    1. window_set_size(w,h); //gewünschte größe des fensters
    2. window_set_region_scale(1,0);// das hier sorgt dafür, dass der Raum nicht skaliert wird


    (Problem2) Gibt es nen Display_cursor-Befehl wenn sich die Mouse im Spielfeld befindet?

    Ich weiß zwar nicht, was genau du suchst, aber das hier sollte dir helfen:

    GML-Quellcode

    1. if (window_mouse_get_x() < r || window_mouse_get_x() > r+room_width // r = breite des rands
    2. || window_mouse_get_y() < r || window_mouse_get_y() > r+room_height) { // wenn du views benutzt muss room_width/_height mit view_wview/_hview ersetzen
    3. window_set_cursor(cr_default); // wenn ausserhalb des spielfelds wird maus gezeichnet
    4. } else {
    5. window_set_cursor(cr_none); // wenn im spielfeld wird maus nicht gezeichnet
    6. }


    (Problem3) Gibts ne andere möglichkeit die Mouse zur Spielfigur zu bringen, die sich nicht bei Veränderung der Fenstergrösse verrechnet?

    GML-Quellcode

    1. window_view_mouse_set(view_current,x,y);

    Dazu brauchst du allerdings einen aktiven View.

    Hoffe, ich konnte helfen.
    MfG Waterman7
  • :thumbsup: :thumbsup: Danke, Danke, Danke@Ponyman7 :thumbsup: :thumbsup:

    Dein 1.Code ist ein Traum. Mein Grösstes Probl. ist gelöst.

    Dein Zweiter funkt nur so lange man die grösse des Windowsfenster beibehält, bei Vollbild z.B. ist Fehler ähnlich wie bei Problem 3. Der GM meint das Game befindet sich Links oben und löscht die Mouse in diesem Bereich, aber nicht zentriert in der Bildmitte wo sich das tatsächliche Game befindet.

    Zusammen mit Mr.Diesel ist dieser Code herausgekommen. Der erlaubt auch die Veränderung des Fensters.

    GML-Quellcode

    1. X01 = window_get_width()/2 - room_width/2
    2. X02 = window_get_width()/2 + room_width/2
    3. Y01 = window_get_height()/2 - room_height/2
    4. Y02 = window_get_height()/2 + room_height/2
    5. if (window_mouse_get_x() < X01 || window_mouse_get_x() > X02 || window_mouse_get_y() < Y01 || window_mouse_get_y() > Y02)
    6. {
    7. window_set_cursor(cr_default);
    8. }
    9. else
    10. {
    11. window_set_cursor(cr_none);
    12. }
    Alles anzeigen
    Jetzt ist Problem2 wirklich gelöst!!
    Aktuelles Game: "Pikslar" mit Online Hiscore





    PS: Will mit dieser Frage mal fragen, ob jemand zur zeit, Zeit hat. Suche Grafiker/Pixler










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

  • Benutzer online 1

    1 Besucher