Objekt per Zufall von einer der vier Seiten in das Spielfeld schweben lassen

  • GM 7

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

  • Objekt per Zufall von einer der vier Seiten in das Spielfeld schweben lassen

    Ich suche ein Lösung ohne GML:

    In meinem Spiel bewegen sich Würfel über den Bildschirm. Nachdem Sie aus dem sichtbaren Bereich geflogen sind, sollen sie zufällig aus einem der vier Seiten des Spielfeldes wieder auftauchen. Wie kann ich dies ohne GML erreichen?
  • Und du kriegst trotzdem eine GML-Lösung, das sich der Code schneller schreiben lässt, als irgendwas zusammen zu klicken. :P

    GML-Quellcode

    1. if (x<randlinks || x>randrechts || y<randoben || y>randunten) //Wenn außerhalb des Spielfeldrandes
    2. {
    3. switch(floor(random(4))) //Switch-Case mir nem randomwert zwischen 0 und 3 (So noch nie ausprobiert)
    4. {
    5. case 0: x=randlinks; //Linker Rand
    6. y=randoben+random(bildhöhe); //Zufällige Position der y-achse
    7. break;
    8. case 1: x=randrechts; //Rechter Rand
    9. y=randoben+random(bildhöhe); //Zufällige Position der y-achse
    10. break;
    11. case 2: x=randlinks+random(bildbreite); //Zufällige Position der x-achse
    12. y=randoben; //Oberer Rand
    13. break;
    14. case 3: x=randlinks+random(bildbreite); //Zufällige Position der x-achse
    15. y=randunten; //Unterer Rand
    16. break;
    17. }
    18. }
    Alles anzeigen


    Es steht dir frei den Code 1zu1 in D&D nachzubilden.
    Für den Fall, dass ein Switch nicht mit random() harmoniert, den Randomwert vorher einer Variable zuweisen und diese Variable im Switch verwenden.

    Hab das ganze nicht getestet und auf Grund von Müdigkeit sind Flüchtigkeitsfehler nicht ausgeschlossen.
    Frohes gelingen! ;)
  • Hmm, geht soweit, aber einige der aus dem Bildschirm fliegenden Objekten kommennicht vom Rand im Bildschirm rein, sondern tauchen irgendwo auf der Spielfläche auf. Ich kann Deinen Code eigentlich lesen und auch verstehen, kann mir aber auch nicht erklären, warum der beschriebene Effekt entsteht.
  • Nun ich habedas wie folgt eingebaut:

    if (x<0 || x>624 || y<0 || y>464) //Wenn außerhalb des Spielfeldrandes
    {
    switch(floor(random(4))) //Switch-Case mir nem randomwert zwischen 0 und 3 (So noch nie ausprobiert)
    {
    case 0: x=0; //Linker Rand
    y=0+random(464); //Zufällige Position der y-achse
    break;
    case 1: x=624; //Rechter Rand
    y=0+random(464); //Zufällige Position der y-achse
    break;
    case 2: x=0+random(624); //Zufällige Position der x-achse
    y=0; //Oberer Rand
    break;
    case 3: x=0+random(624); //Zufällige Position der x-achse
    y=464; //Unterer Rand
    break;
    }
    }
  • wenn ich stören darf kann man auch die ränder je nach room defenieren:

    GML-Quellcode

    1. randlinks=0
    2. randrechts=room_width
    3. randoben=0
    4. randunten=room_height
    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
  • Benutzer online 1

    1 Besucher