Zufall ohne Drag&Drop "Test Chance"

  • Zufall ohne Drag&Drop "Test Chance"

    Hallo,

    Ich möchte erreichen, dass

    mit einer wahrscheinlichkeit von

    5/14 -> Ereigniss A
    3/14 -> Ereigniss B
    3/14 -> Ereigniss C
    2/14 -> Ereigniss D
    1/14 -> Ereigniss E

    stattfindet.

    Wie kann ich dass machen, ohne dass ich ein oberkompliziertes Drag&Drob gebilde mit dem "Test Chance" Button erstelle?

    lg Schiwoanni
  • GML-Quellcode

    1. ereigniss=1+round(random(13))
    2. if ereigniss<6
    3. {
    4. //Ereigniss A
    5. }
    6. if ereigniss=6 or ereigniss=7 or ereigniss=8
    7. {
    8. //Ereigniss B
    9. }
    10. if ereigniss=9 or ereigniss=10 or ereigniss=11
    11. {
    12. //Ereigniss C
    13. }
    14. if ereigniss=12 or ereigniss=13
    15. {
    16. //Ereigniss D
    17. }
    18. if ereigniss=14
    19. {
    20. //Ereigniss E
    21. }
    Alles anzeigen
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • Erstmal Vielen Dank für die Antwort!

    Die oben genannten "Ereignisse" sollen jetzt sein, dass das objekt, auf den ich deinen Code angewendet habe verschiedene Objekte "erzeugt", die sich selbstständig mit speed=1 nach links bewegen.

    Also:

    Ereigniss 1: Tank1
    Ereigniss 2: Tank2
    Ereigniss 3: Tank3
    Ereigniss 4: Tank4
    Ereigniss 5: Tank5

    Ich habe das jetzt mal so gemacht:

    GML-Quellcode

    1. ereigniss=1+round(random(13))
    2. if ereigniss<6
    3. {
    4. instance_create(x+x_pos,y+y_pos,tank1);
    5. }
    6. if ereigniss=6 or ereigniss=7 or ereigniss=8
    7. {
    8. instance_create(x+x_pos,y+y_pos,tank2);
    9. }
    10. if ereigniss=9 or ereigniss=10 or ereigniss=11
    11. {
    12. instance_create(x+x_pos,y+y_pos,tank3);
    13. }
    14. if ereigniss=12 or ereigniss=13
    15. {
    16. instance_create(x+x_pos,y+y_pos,tank4);
    17. }
    18. if ereigniss=14
    19. {
    20. instance_create(x+x_pos,y+y_pos,tank5);
    21. }
    Alles anzeigen


    Allerdings kommt dann beim ausführen der Fehler:

    ERROR in
    action number 1
    of Alarm Event for alarm 0
    for object HQ_TRY:

    Error in code at line 4:
    instance_create(x+x_pos,y+y_pos,tank1);

    at position 20: Unknown variable x_pos



    Kannst du mir helfen?
  • Laos erstmal kannst du das auch mit choose machen (choose(x1,x2,x3,x4,x5...)dann sagt die fehlermeldung eigentlich schon alles:
    die variable x_pos gibt es nicht. meinst du die variable x_pos von object tank1/2/3/4?
    Dann musst du tank1.x_pos schreiben. So nimmt er die variable nach dem punkt vom object vor dem punkt.
    Wenn nicht solltest du ein paar genauere informationen über die objecte geben. ich hoffe ich konnte weiterhelfen
    mfg gamer_08
  • Nein, instance_create ist schon richtig, das erzeugt ja das Objekt, mach einfach statt dem instance_create das hier:

    GML-Quellcode

    1. a = instance_create(x,y,obj);
    2. a.speed = 1;
    3. a.direction = 180;


    so fährt die Instanz mit Speed 1 nach links und statt x und y und obj deine Werte einsetzen wie du es schon getan hast.
    Gruß Gamer