Ständig selber Einsatz trotz Random

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

  • Ständig selber Einsatz trotz Random

    Hallo Leute

    Beim Spiel Medical Rush werden die Einsätze per Zufall generiert. Doch es erscheint immer derselbe Einsatz (Sturz von Leiter).

    obj_einsatzgenerator
    :event_create:

    GML-Quellcode

    1. global.einsatz = 0;
    2. global.einsatzaktiv = 0;
    3. sound_loop(snd_noaction);
    4. alarm[0] = random(room_speed*60);


    :event_timer:

    GML-Quellcode

    1. if (global.einsatzaktiv == 0) {
    2. global.einsatz = floor(random(2));
    3. sound_stop(snd_action);
    4. sound_loop(snd_noaction);
    5. }
    6. if (global.einsatz == 1 && global.einsatzaktiv == 0) {
    7. instance_create(x,y,obj_einsatz1);
    8. sound_stop(snd_noaction);
    9. sound_loop(snd_action);
    10. }
    11. else if (global.einsatz == 2 && global.einsatzaktiv == 0) {
    12. instance_create(x,y,obj_einsatz2);
    13. sound_stop(snd_noaction);
    14. sound_loop(snd_action);
    15. }
    16. /*
    17. else if (global.einsatz == 3) {
    18. instance_create(x,y,obj_einsatz3);
    19. }
    20. else if (global.einsatz == 4) {
    21. instance_create(x,y,obj_einsatz4);
    22. }
    23. else if (global.einsatz == 5) {
    24. instance_create(x,y,obj_einsatz5);
    25. }
    26. else if (global.einsatz == 6) {
    27. instance_create(x,y,obj_einsatz6);
    28. }
    29. else if (global.einsatz == 7) {
    30. instance_create(x,y,obj_einsatz7);
    31. }
    32. else if (global.einsatz == 8) {
    33. instance_create(x,y,obj_einsatz8);
    34. }
    35. else if (global.einsatz == 9) {
    36. instance_create(x,y,obj_einsatz9);
    37. }
    38. else if (global.einsatz == 10) {
    39. instance_create(x,y,obj_einsatz10);
    40. }
    41. */
    42. alarm[0] = random(room_speed*60);
    Alles anzeigen


    Randomize hab ich irgendwo schon drinnen. An dem liegt's also nicht.

    Lg
    Michael
  • Die Funktion random() liefert eine Kommazahl zwischen 0 und 2. Wenn du diese dann abrundest bekommst du immer 0 und 1 als Ergebnis (Extrem selten auch 2). So wird zum Beispiel 1.736 zu 1 und 0.327 zu 0. Benutze die Funktion irandom_range(a, b) welche dann eine Ganzzahl zwischen a und b (inklusive) ausgibt. Du kannst deinen Code übrigends mit einem switch stark vereinfachen.

  • Du solltest auch beim Beginn deines Spieles den Befehl randomize(); einfügen.

    Den GM:S benutzt zu Test- / Debugzwecken immer den gleichen Randomseed. Darum wählt er auch immer die selbe Zahlen.

    Durch randomize ändert sich der Seed und GM wählt andere Zahlen.