Random steuern

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

  • Random steuern

    hallo


    also ich habe bei einer globalen variable die funktion irandom(6) benutzt (also wählt der computer automatisch von 6 sachen aus)


    jetzt wollte ich nur wissen ob es irgendwie möglich ist es zu steuern...weil ich würde die objekte gerne vorher anzeigen die dann gewählt werden.also es wird ein objekt erstellt und ich will das dieses objekt aber schon vorher angezeigt wird

    ist das möglich???
  • ja so ähnlich habe ich das eh schon gelöst aber es ist so das er jetzt immer nur das sprite anzeigt was schon da ist und nicht das was erst kommen soll....und das ist das problem....mit dem irandom...

    irgendwie müsste es möglich sein das ich weiß was der computer als nächstes wählt.sodass ich es dann drawen lassen kann...also anzeigen.
  • ja genau...es geht sogar um tetris...lol


    ich will das die nächste form angezeigt wird...

    jedoch funktioniert es nicht mit 2 variablen....also ich habe eine fixe variable für die formen die heißt global.shape = irandom(6) // damit wählt er zwischen den sechs formen aus...
    aber das problem ist eine form besteht aus mehreren blöcken die je eine globale variable sind. wie zb :

    GML-Quellcode

    1. ​if global.shape == 0
    2. {
    3. global.block1 = instance_create(x+64,y,obj_form);
    4. global.block2 = instance_create(x+96,y,obj_form);
    5. global.block3 = instance_create(x+128,y,obj_form);
    6. global.block4 = instance_create(x+96,y+32,obj_form);
    7. }


    und wenn ich jetzt einfach draw sprite global.shape machen würde dann würde er nur einen global.block zeichnen...ich hab dann dafür extra für jede form noch ein eigenes fertiges sprite gezeichnet aber solange ich nicht weiß was der computer von irandom(6) als nächstes wählt kann ich es nicht anzeigen lassen....zurzeit kann ich nur anzeigen was gerade für eine form ist...
  • Natürlich geht es mit einer 2ten Variable. Die nennst du dann zb global.NextShape. Dort lässt du die Zufallszahl generieren.

    Wenn dann der Block unten angekommen ist setzt du global.Shape auf Global.NextShape und lässt wieder bei global.NextShape die Zufallszahl generieren.

    Zeichnen lässt du einfach immer global.shape.

    Wenn du mehrere Sprites hast machst du eine switch oder if abfrage uns stellst je nach Wert das Sprite ein.
  • ja wie schon erwähnt hab ich es schon lange gezeichnet aber leider immer nur die gerade verwendete form...

    wie soll ich das machen also du meinst ich soll ne neue variable erstellen zb global.nextshape und darin soll ich das irandom speichern?? und bei global.shape soll ich einfach irgendeine form zuerst auswählen??

    da hab ich ja genau das selbe problem wie vorher..das ich einfach nicht wissen kann was für eine form (global.shape) kommen wird.weil es ja noch nicht feststeht was kommt.ich weis nur das es eine von den 6 formen sein wird
  • Du bist nah dran...

    Natürlich kannst du wissen welche Form kommen wird.

    Bei Spielbeginn lässt du die 2 variablen mit irandom füllen. Dann hast du zb:

    global.Shape = 2
    global.NextShape = 6

    Dann weisst du das der aktuelle block die nummer 2 hat und der nächste Block der Block 6 wird.

    Landet der Block aufm Spielfeld stellst du global.Shape auf global.NextShape und lässt bei NextShape wieder ein zufallswert ziehen.
    Dann hast du:

    global.Shape = 6
    global.NextShape = 1

    Dann weisst du das Shape der Block 6 ist (was vorher eben zufällig ausgewählt wurde) und der nächste Block wird Block 1...

    Und immer so weiter... Sorry für die Formatierung...schreibe von Handy.
  • ich komm da einfach nicht dahinter...habs jetzt mit den 2 variablen probiert aber bekomms nicht hin...sorry


    EDIT: ja geschafft juhuu aber jetzt hab ich ein neues problem und zwar das die farben nicht über einstimmen...oh gott... aber danke für deine hilfe echt toll danke