image und random frage...

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

  • image und random frage...

    hey also ich hab ma ne frage ich mach grad ein kartenspiel und da soll wenn eine karte vom PC gespielt wird diese karte nie wieder vom PC gespielt werden also soll die gelöscht werden. Ich mach das jetz aba so das jede Karte ein Subimage (ist das der richtige ausdruck dafür wenn ich in einem bild 32 bilder hab und die sprite über image_index wechsel?) ist. Also wie kann ich die karte löschen? also so ca. nach:

    GML-Quellcode

    1. image_delete(image_index = global.gegnerkarte)


    gegnerkarte is die variable die überprüft wird z.b.:

    GML-Quellcode

    1. if global.gegnerkarte == 1
    2. {
    3. global.gsub=1
    4. }


    so weit verstanden?
    ok gut...

    und wie kann ich bei random(x) nicht von 0 starten sondern z.b von 3?
    also z.B.

    GML-Quellcode

    1. global.zufall59 = random_start(3,random(9))

    oder so? also das eine zahl zwischen 3und9 generiert wird aber in einer variable gespeichert werden kann?

    MfG Tricktickler
    Dieser Beitrag wurde 1993 mal editiert, zum letzten Mal von tricktickler: Morgen, 25:60

    Frag doch OnkelGoogle
  • 1. Da würd ich mit ds_list arbeiten.
    Such in der Help nach der Funktion und du wirst hoffentlich verstehen, wie du damit arbeiten kannst ;)
    2. bla=floor(random(7)+3)
    Das müsste eine Ganzzahl zwischen 3 und 9 wieder geben.
  • zu 1. entweder so wie TrunX gesagt hat oder mit einem array, was im prinzip das gleiche ist.
    Hier mal ein paar scripte dafür:

    Das kommt in das create event eines objektes:

    GML-Quellcode

    1. var i;
    2. n = 32;
    3. for (i=0; i<n; i+=1) {
    4. karte[i] = i;
    5. }


    Dann noch folgendes script erstellen mit dem namen scr_get_card():

    GML-Quellcode

    1. var i, k, v;
    2. if (n = 0) {
    3. return -1;
    4. }
    5. k = floor(random(n));
    6. v = karte[k];
    7. n -= 1;
    8. for (i=k; i<n; i+=1) {
    9. karte[i] = karte[i+1];
    10. }
    11. return v;
    Alles anzeigen


    Dieses script im gleichen Objekt aufrufen um eine zufällige karte zu erhalten und diese aus der liste zu löschen. Wenn keine mehr übrig ist wird -1 zurück gegeben.
    Die Funktion kannst du ja nach bedarf noch umschreiben.