"Echter" Zufall - Fragen zum Thema

  • Win

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

  • "Echter" Zufall - Fragen zum Thema

    Abend, schon wieder suche ich Hilfe in diesem tollen Forum. Es geht diesmal um "echten" Zufall. In meinem derzeitigen Projekt lasse ich das Level, sowie die Positionen der Gegner zufällig generieren. Doch leider erkenne ich durch mehrmaliges Testspielen ein Muster. Ich habe die Funktion randomize() in mehrere Create Events und sogar im Creation Code des Raumes geschrieben, doch es ändert sich nichts. Doch am Schlimmsten finde ich Folgendes: Ich lasse Gegner an zufälligen Postionen im Raum generieren. Dazu benutze ich den Code:

    GML-Quellcode

    1. repeat(irandom(60)+30) instance_create(random(room_width),random(room_height),obj_gegner)


    Das Seltsame ist nur, dass alle Gegner immer am gleichen Fleck erscheinen. Nicht die gleiche x un y Position aber in einem bestimmten Umkreis, also am selben Ort. Der Ort ist zufällig aber die Gegner sollen ja über die Map verteilt zufällig spawnen und nicht alle auf einen Haufen. Was ist das denn für eine DUMME Eigentümlichkeit des Makers!!! Sorry, aber das kotz mich an, da ich deswegen schon eine ganze lange Ewigkeit rumprobiere. Was kann ich dagegen tun?

    Und was ist mit dieser "magischen" randomize() Funtion? In meinem Spiel wird ein zufälliges Höhlensystem generiert. Doch der erste Gang, der in dem der Spieler spawnt, geht entweder immer nach links oder schließt gar nicht an andere Gänge an. Während die anderen Gänge schön zufällig entlang verlaufen und sich schön verbinden. Doch gerade da, wo der Spieler spawnt sollte doch eine Weile schön ein Weg entlang verlaufen. WAS SOLL DAS?! Manchmal glaub ich der Game Maker verarscht mich! :)


    EDIT: Ich hab die Hilfe nochmals studiert und ich glaube jetzt, dass ich den Befehl randomize() jedesmal bevor ich random(x) ausführe, schreiben muss. Damit der random_seed jedesmal anderes ist. Lieg ich da richtig?

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

  • Abend Morpheus.

    Das was du hier beschreibst ist völlig normal und auch gewollt so vom Game Maker. Und zwar aus folgendem Grund: Zu Testzwecken.

    Zu Testzwecken wird im Debug Modus immer wieder der selbe Random Seed hergenommen und deine Gegner etc sind deswegen immer an der selben Position.


    Und richtig, wichtig dabei ist der befehl randomize().
    Es sollte aber reichen ihn einmal beim Spielstart auszuführen damit ein neues zufälliges Seed vom Maker erstellen zu lassen.

    Siehe Hilfe:
    Englische Originalhilfe

    Auszug:

    Please note, that when using the random number functions in GameMaker: Studio the initial seed is always the same, as this makes tracing errors and debugging far easier. Should you wish to test with true random, you should call this function at the start of your game.
  • also man schreibt es nicht in die klammern von repeat, man schreibt es darunter:

    GML-Quellcode

    1. repeat(10)
    2. {
    3. irandom(60)+30)
    4. instance_create(random(room_width),random(room_height),obj_gegner
    5. }

    die 10 in der klammer von repeat müsste angepasst werden
    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