Random-bewegter Hintergrund

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

  • Random-bewegter Hintergrund

    Moin zusammen,

    wie ich bewegte Hintergründe erstelle weiss ich im Prinzip. Im "normalen" Spiel funktioniert das auch wunderbar.

    Jedoch wollte ich nun im Hauptmenü (welches im Hintergrund eine Galaxie/Universum/Weltall zeigt) bewegt haben und zwar random.

    Es soll also so sein, dass der User im Hauptmenü seine Buttons hat - diese sind alle statisch. Aber der Hintergrund soll halt bewegt sein. Mal soll es etwas rechts oder links rotieren, mal evtl etwas rein- und rauszoomen und das alles sehr sehr langsam, so das man es nur minimal wahrnimmt, aber das Hauptmenü wirkt dadurch ahlt nicht mehr so statisch.

    Ich hatte mich dazu dem folgenden Code bedient:

    GML-Quellcode

    1. draw_background_ext(BG2,-50,-20, 0.8, 0.8, sin((image_angle*pi)/810), c_white, 1);


    Jetzt ist es schonmal so, das er wenigstens den Background nach rechts oder links dreht (durch den Sinus-Befehl), aber die Bewegung ist halt immer exakt gleich, also gleichweit nach rechts und gleichweit nach links... es soll mehr random mässig sein. Zumal hier die Rotation des Bildes nicht vom Mittelpunkt stattfindet, sondern vom X und Y "Start"-Punkt. Gibts nen Weg den Mittelpunkt des Bildes festzulegen?

    Desweiteren bekomme ich mit dem Befehl oben auch maximal die Drehung rechts/links hin (und das noch nicht wirkliuch richtig zufriedenstellend). Was muss ich tun und dann noch randommässig mal rein oder rauszuzoomen?

    Ist etwas blöde zu erklären, wenn man nicht genauer Beschreibung kann wie der Hintergrund sich bewegen soll :)

    LG

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

  • Am besten erstellst du im Create eine Variable die z.B. ready heißt. Mach sie auf true. Im Step kannst du dann abfragen. Wenn ready auf true ist, sucht es sich zufällig eine Sache aus. Am besten einfach eine Variable einen Wert zwischen 0 und 3 geben lassen nennen wir sie mal phase. Mach Danach switch-case oder einfach if abfragen und frag ab, welchen wert phase hat. Wenn phase 0 oder 2 hat, setzt du anim(für animation) auf z.B. 100, wenn phase 1 oder 3 ist den Wert z.B. auf -100 setzen. Dann musst du ready auf false setzen, damit das erst mal nicht wieder ausgeführt wird. Das muss alles in eine Klammer. Dann mach paar Zeilen frei und frag wieder ab, welchen Wert phase hat. Wenn 0 dann bewege den Hintergrund minimal nach links und subtrahiere anim auch mit dem Wert. Bei 1 bewege den Hintergrund nach rechts und addiere anim mit dem Wert. Dass selbe noch mit ein und auszoomen. In den Abfragen solltest du dann noch abfragen, ob der Wert größer bzw. kleiner als 100/-100 ist. Dann muss ready wieder auf true gesetzt werden für den nächsten effekt.


    Edit: Sieht da oben nicht so schön aus. Ich schreibe mal den Code.(ich achte jetzt mal nicht auf die Formatierung, da der Editor hier zum *** ist)
    Create:

    GML-Quellcode

    1. ​ready = true;


    Step:

    GML-Quellcode

    1. ​if ready{
    2. phase = random(3);
    3. switch(phase){
    4. case 0: anim = 100;
    5. break;
    6. case 1: anim = -100;
    7. break;
    8. case 2: anim = 100;
    9. break;
    10. case 3: anim = -100;
    11. }
    12. ready = false;
    13. }
    14. switch(phase){
    15. case 0: anim -= 1;
    16. background_x -= 1;
    17. break;
    18. case 1: anim = -100;
    19. background_x += 1;
    20. break;
    21. case 2: anim -= 1;
    22. background_xscale += 0.01;
    23. background_yscale += 0.01;
    24. break;
    25. case 3: anim += 1;
    26. background_xscale -= 0.01;
    27. background_yscale -= 0.01;
    28. break;
    29. }
    Alles anzeigen



    Ich seh gerade, dass das nicht wirklich eine gute Lösung ist.
    Ich bin aber faul um das jetzt umzuschreiben :D
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe

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

  • Du musst halt erst zufällig entscheiden, was als nächstes kommen soll. Dann machst du eben je nach dem, welche zahl random ausgespuckt hat, etwas was du dem zugewiesen hast.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • ups hab ich vergessen zu machen. Hier muss noch geprüft werden ob anim größer bzw. kleiner ist als 100/-100. Hab ich aber in der "Erklärung" auch geschrieben. Ich bin jetzt zu faul das richtig zu schreiben ;)
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe