Auflösungssystem wie in Hyper Light Drifter?

    Führe einfach mal dieses script im room create aus:

    GML-Quellcode

    1. ///scale(view, zoom)
    2. //view = view index (view_current oder 0,1,2...);
    3. var ww = window_get_width();
    4. var hh = window_get_height();
    5. var xx = window_get_x();
    6. var yy = window_get_y();
    7. display_reset( 4 , true);
    8. window_set_rectangle( xx , yy , ww , hh );
    9. surface_resize( application_surface , ww , hh )
    10. view_wview[argument0] = ww/argument1;
    11. view_hview[argument0] = hh/argument1;
    12. view_wport[argument0] = ww;
    13. view_hport[argument0] = hh;

    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
    Ich bekomme einen Error:
    In Room rm_ini, Room creation Code at
    line 10 : cannot use an argument outside a script

    In Room rm_ini, Room creation Code at line 10 : cannot use an argument outside a script
    In Room rm_ini, Room creation Code at line 11 : cannot use an argument outside a script
    In Room rm_ini, Room creation Code at line 11 : cannot use an argument outside a script
    In Room rm_ini, Room creation Code at line 12 : cannot use an argument outside a script
    In Room rm_ini, Room creation Code at line 13 : cannot use an argument outside a script
    Compile Failed - Please check the Compile window for any additional information

    Was soll ich denn davor mit
    var breite = view_wview[0] / display_get_width();
    var hoehe = view_hview[0] / display_get_height();
    view_wport[0] = view_wview[0]*max(breite,hoehe);
    view_hport[0] = view_hview[0]*max(breite,hoehe);
    machen?
    Du musst ein script erstellen mit dem namen scale. Da fügst du das ein und dann rufst du das mit scale(view_current,1); auf. Sonst brauchst du garkeinen code
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
    Und jetzt verstehe ich gar nichts mehr.
    Ich hab jetzt 6-7 Sachen erzählt bekommen, was ich machen soll und jetzt ist es wieder etwas anderes.
    Ich weiß nicht, was ich überhaupt tun soll, was ich wo machen soll und weshalb und was weg soll.
    Kann mir das bitte jemand verständlich und auch zusammenhängend erklären, damit wir das in einer Antwort lösen können?
    So nimmt das hier kein Ende, weil ich jedes Mal, wenn ich das umsetze, was mir gesagt wird, etwas anderes erzählt bekomme.
    Ich hab doch grad gesagt vergess den anderen kram. Wo genau ist denn jetzt das problem links auf "scripts" > create script zu klicken. Ich bin davon ausgegangen du weißt wie man scrìpts benutzt.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
    Ok ich habe jetzt also alles von davor gelöscht, habe ein neues Script erstellt, habe es an oberste Stelle getan und das eingefügt.
    Dann habe ich view und port des raumes auf 544x416 zurückgesetzt.
    Ich bekomme keinen Error mehr aber geändert hat sich nichts, es ist ja genau so groß wie ich es eingestellt habe.
    Meinst du, dass ich das skript jetzt aufrufen muss wenn ich zwischen fullscreen und screenmode toggeln will?
    Nein, mit Skripten kenne ich mich nicht aus, ich hatte wie gesagt kaum gelegenheit, mich mit gml einzufinden.
    Sry, dass ich so reagiert habe, ich war nur ziemlich verwirrt, weil ich nichts verstanden habe und es sich so anhörte, als ob es unnötig verkompliziert würde :)
    Wenn du jetzt "start in fullscreen" in den game options auswählst und das ausführst sollte das Spiel auf die größtmögliche Auflösung für den Bildschirm skaliert werden
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Rhazul“ ()

    Ok gut. Jetzt funktioniert alles so weit, vielen Dank :)
    Jetzt gibt es nur noch ein letztes kleines Problem:Wenn ich mich bewege scheint sich die Dicke der Pixel zu verändern.
    Also wie auf dem letzten Screen, den ich gezeigt hab.
    Im normalen Fenstermodus ändert sich das nicht, aber wenn ich im fullscreen bin ist es so, als ob sich die Pixeldicke verändert, mal dicker, mal dünner.
    Weiß jmd, wie man etwas dagegen tun kann?

    Edit: Ich habe gerade nochmal nachgeschaut und im Grunde genommen ändert das Script gar nichts, ich kann genau so gut einfach so im Vollbildmodus starten

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Matt Mats“ ()

    Dann bin ich mit meinem Latein am Ende. Das Script macht eigentlich das was ich dachte was du willst, ich benutze es auch in fast jedem Projekt. Du kannst gerne das Projekt hochladen und ich guck mir an was Sache ist.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
    Entweder du lädst den ganzen .gmx Ordner des Projekts hoch oder noch besser du klickst auf exportieren und kriegst dann eine Datei die du schicken kannst. Das was du da hochgeladen hast ist die config des Projekts, die ist auch nur 2 kb groß
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:

    Brodi schrieb:

    Aku_Ryou schrieb:


    Du hast ein Object mit einer ganz hohen depth damit es als erstes ausgeführt wird, zB obj_game_control mit einer depth von 10000.
    [/gml]


    Sorry für das Offtopic, aber diese Aussage verwirrt mich gerade.
    Depth hat doch nichts mit der Priorität zu tun welche Objekte als erste in einem Room erstellt wird sonder ist jegliche ein grafische Ebenentiefenwert.
    Das regeln welche Objekte in welcher Reihenfolge ausgeführt werden, regelt man doch im Room unter Settings mit der Liste Inder "Instance Order"


    @Brodi ja, da hast du Recht, aber wenn man nichts extra in den Room settings eingestellt hat, dann ist es "best-practice" eine sehr hohe depth zu verwenden. Probier mal 2 Objecte in deinen Raum zu setzen, das eine mit -1000 das andere mit 1000 depth und lasse im create event der beiden auf das jeweils andere zugreifen. Dann wird dir ein Error kommen, weil er noch nciht auf ein bestimmtes Object zugreifen kann, die Reihenfolge und Depth order ist also nciht nur fürs drawen wichtig.

    GML-Quellcode

    1. ///create von obj_tief
    2. variable = "tief"
    3. meineVariable = obj_hoch.variable;
    4. //draw
    5. draw_text(x,y,meineVariable);

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