port on screen / fullscreen

  • GM 8
  • port on screen / fullscreen

    Tach Leute

    Ich möchte alle Einstellungen (global game settings, room settings, views etc.) in GML festlegen. Das klappt soweit sehr gut.
    Doch ein Problem besteht nach wie vor. Das Programm läuft auf fullscreen und die View sitzt bei x0,y0... wird aber nicht auf das Vollbild "gestretcht".

    Hier seht ihr den Code:


    :event_create:

    GML-Quellcode

    1. window_set_fullscreen(true);
    2. screen_wait_vsync = true;
    3. window_set_region_scale(-1,true);
    4. dispw = display_get_width();
    5. disph = display_get_height();
    6. texture_set_interpolation(true);
    7. cursor_sprite = spr_cursor;
    8. view_enabled = true;
    9. view_visible[0] = true;
    10. view_xview[0] = room_width/2;
    11. view_yview[0] = room_height/2;
    12. view_wview[0] = 640;
    13. view_hview[0] = 480;
    14. view_xport[0] = 0;
    15. view_yport[0] = 0;
    16. view_wport[0] = dispw;
    17. view_hport[0] = disph;
    18. view_object[0] = obj_kamera;
    19. view_vborder[0] = 2;
    20. view_hborder[0] = 2;
    21. view_hspeed[0] = room_speed*10;
    22. view_vspeed[0] = room_speed*10;
    Alles anzeigen



    Ich danke euch für Lösungsansätze. :)


    //EDIT
    Funktioniert doch nicht, wie es sollte. An Breitbildmonitoren z.B. treten diverse Fehler auf. Ich versuche das eigenständig zu beheben. Was macht der GM anders, wenn er die Views etc. es direkt automatisch über die room settings regelt? Ich habe alle Funktionen in GML ausgeführt. Ich verstehe das nicht. Ich melde mich wieder.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Michaelp800 ()

  • So hab mir den Thread mal durchgelesen.
    Leider kann man bei den Views sehr viel falsch machen :D

    Das einzige was anders bei den room Settings und manuellem einstellen ist, ist dass man bei dem manuellem
    Variablen zur verfügung hat :o

    Daran solls aber bei dir erstmal nicht liegen.

    Zuerst hab ich mich gefragt wieso du xview und yview in der Mitte des Raumes haben möchtest? :o

    Jedenfalls habe ich den verdacht, dass diese Faktoren das "stretching" ein wenig behindern:

    GML-Quellcode

    1. view_xview[0] = room_width/2;
    2. view_yview[0] = room_height/2;
    3. view_wview[0] = 640;
    4. view_hview[0] = 480;
    5. view_xport[0] = 0;
    6. view_yport[0] = 0;
    7. view_wport[0] = dispw;
    8. view_hport[0] = disph;
    Alles anzeigen


    Der x und yview ist irgendwo in der Mitte des Raumes,
    Der x und yport die den Zeichnungsbereich bestimmen liegen teilweise außerhalb des Views,
    Der w und hview ist wohl kleiner als der w und hport.

    Ich hab noch nie genau die Zusammenhänge verstanden, aber bei mir lief immer alles glatt
    wenn der x/yview und x/yport = 0 waren und der w/h View und Port ebenfalls die selbe größe hatten.

    Ich weiß nun nicht genau, ob es deshalb nicht richtig gestretcht wird.
    Du kannst gern mal ein bild schicken, da kann man sich denken welcher Code
    wo was ausgelöst hat :p

    Vielleicht hab ich auch deine Absichten mit den Views falsch interpretiert und
    man kann doch mehr machen als ich dachte :headtouch:


    mfg
  • Tag :)

    Einen View kannst du manuell nur ändern, wenn du diesen in einem extrigen Raum initialisierst.
    Und zwar mit den room_set Kommandos. Die Variablen dienen nur zum Abfragen der aktuellen
    Werte und lassen sich nicht verändern. Am besten verwendest du
    room_set_view(ind,vind,vis,xview,yview,wview,hview,xport,yport,wport,hport,hborder,vborder,hspeed,vspeed,obj)
    Diesen Befehl führst du einfach in einem "Startraum" aus und wechselst dann zum eigentlichen Spiel.Mehr Infos zu diesem Befehl findest du in der Hilfe.
  • View Einstellungen kann man auch während der Raum geladen ist verändern : /
    Was du meinst ist, dass man "Raum Einstellungen" wie die Raum Höhe, Breite u.ä
    nur verändern kann wenn der Raum noch nicht geladen ist.

    Der Befehl den du angeschrieben hast gehört noch glaub ich zu den Raum Einstellungen, die
    nur Wirken wenn der Raum noch nicht geladen ist. Ansich lassen sich die View Einstellungen
    wie schon gesagt jederzeit ändern :)
  • Andersrum, die View lässt sich verändern, nur der Raum nicht während der aktiv ist ^^

    Ob dein Befehl nun immer funktioniert oder nicht ... so wie er das gemacht hat, ist es das
    selbe wie dein Befehl, nur übersichtlicher und bezieht sich ausschließlich auf die View :o

    Nebenbei an den Threadstartet: Schon eine Lösung gefunden?


    mfg
  • Momentan scheint es wunderbar zu funktionieren. Definitiv freuen darf ich mich aber erst, wenn ich am Breitbildschirm getestet hab.

    :event_create:

    GML-Quellcode

    1. xx = display_get_width();
    2. yy = display_get_height();
    3. window_set_fullscreen(true);
    4. window_set_region_scale(-1,true);
    5. screen_wait_vsync = true;
    6. texture_set_interpolation(true);
    7. display_reset(4);
    8. window_set_cursor(cr_handpoint);
    9. view_enabled = true;
    10. view_visible[0] = true;
    11. view_xview[0] = 0;
    12. view_yview[0] = 0;
    13. view_wview[0] = 640;
    14. view_hview[0] = 480;
    15. view_xport[0] = 0;
    16. view_yport[0] = 0;
    17. view_wport[0] = xx;
    18. view_hport[0] = yy;
    19. view_hborder[0] = 2;
    20. view_vborder[0] = 2;
    21. view_hspeed[0] = room_speed;
    22. view_vspeed[0] = room_speed;
    23. view_object[0] = obj_kamera;
    Alles anzeigen
  • Benutzer online 1

    1 Besucher