Zufall

  • Hallo!

    Ich arbeite gerade an einem Spiel, is klar.
    Und wenn man einen Raum betritt, soll per zufall generiert werden, ob ein monster erscheint oder nicht, is klar.
    Aber wie soll das gehen.
    Ich habe schon im Forum gescuth aber nichts gefunden.
    Also was ich mir genau vorstelle:

    Wenn man sich in einem Raum begibt, soll per Zufall generiert werden, ob ein Monster drin ist oder nicht.
    Also z.B die Chance ist 50 zu 50 das ein Monster in diesem Raum ist.
    Also: Es kann sein das ein Monster kommt und dich killen will, aber auch nicht.
    Und das ist mein problem.

    Übrigens: Ich habe nur Game Maker 7 Lite, also muss schon mit Lite funktionieren!

    Wäre nett wenn ihr mir weiter helfen könntet

    Gruß Pascal
  • Warum so umständlich?
    Du machst ein Object, dass genau das kontrolliert:

    GML:

    GML-Quellcode

    1. if choose(0,1)=1
    2. {
    3. instance_create(/*x-koordinate*/,/*y-koordinate*/,monster);
    4. }


    D&D:
    [variable: choose(0,1)] [value: 1] [operation: equal to]
    <-- keine Pflicht
    [x: x-position] [y: y-position] [object: monster]
    <-- keine Pflicht

    Erklärung:
    choose(...) wählt zufällig einen von den werten in der klammer (kann glaube ich bis zu 16(?) werte beinhalten)



    €dit: statt choose(0,1) würde auch round(random(1)) gehen (kommt aufs gleiche bei raus) für die Erklärung guck bitte in der Hilfe
  • Ich finde das beispiel soweit ganz gut. Dankje J@kob.
    Es gibt aber 2 schwarze kreise in deinem beispiel, wofür ist der zweite?
    Ich hab das bis jetzt nur so verstanden.
    Der zweite kreis zerstört sich selbst damit er nicht auftaucht und nicht zu sehen ist.
    Der erste bleibt aber da.
    So richtig?

    Gruß pascal
  • Ich erklär dir J@kobs Example mal genau:

    Also, es gibt 3 Objekte, 2 sind schwarze Kreise.
    Wenn du dir das [ Create Event ] vom object3 ansiehst, siehst du folgende Aktion:
    Create instance of random object
    object 1: object0
    object 2: object1
    object 3: No object // Nicht wichtig
    object 4: No object // Nicht wichtig
    x: 0 // Nicht wichtig ( erstmal )
    y: 0 // Nicht wichtig ( erstmal )
    Relative: true


    Also, da wir in der Aktion 2 Objekte definiert haben, wird nun eines von beiden erstellt. Durch Zufall.
    Nehmen wir an nun wird object0 erstellt. Dieses bleibt im Room, da es keine Destroy-Aktion oder sonstiges hat.
    Es kann aber genauso gut sein, dass das object1 erstellt wird.
    Nun sehen wir uns mal das [ Create Event ] von dem Objekt an:
    Wir werden folgende Aktion sehen:
    Destroy the instance

    Also, eines von beiden Objekten wird erstellt, wenn object1 erstellt wird, zerstört es sich selbst, da es ja im Create Event die Destroy Aktion hat.
    Wird aber das andere ( object0 ) erstellt, bleibt es bestehen.

    ---

    Das ist aber eine umständliche Methode, darum mach es lieber so:

    GML
    [ Create Event ]

    GML-Quellcode

    1. if (choose(0,1) ==1) { instance_create(x,y,object0);


    oder
    D&D
    [ Create Event ]

    Test Chance
    [ Sides: 2]
    Create instance of object
    [ object: object0 ] [ x: 0 ] [ y: 0 ] [ Relative: true ]

    ( und lösche 'object1' )

    ;)
    Ich hoffe, ich konnte dir helfen. :)
  • Benutzer online 2

    2 Besucher