ds_list problem

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

  • ds_list problem

    hi ich bin gerade ein bisschen am rumspieln und bin auf ein Problem gestoßen das ich nicht verstehe :D

    ich habe mir eine Liste gemacht in der ich ein paar Namen von Sprites reinlade. Dann lass ich die Liste shuffeln.

    das klappt noch alles super auch wenn ich die liste nun drawen lasse mischt sich alles super.

    nun möchte ich den ersten eintrag der liste als sprite zuweisen lassen. das versuche ich so ^^

    Quellcode

    1. if keyboard_check_pressed(vk_enter) {
    2. up = ds_list_find_value(spr_list,1)
    3. sprite_index = up;
    4. }

    ab da klappt es leider nicht mehr, die liste im draw wird immer perfekt gemischt aber das sprite ist immer das, das ich als erstes in die liste geladen habe.
  • Hm, ich glaube die Funktion die du bräcuhtest gibt es bei ds_list s nicht. Du könntest stattdessen einen ds_stack probieren, oder falls du nie mehr als einen random eintrag gleichzeitig aus der liste brauchst, einfach einen mit ds_list_find_index(spr_list,irandom(ds_list_size(spr_list)-1) herausfischen.
    Wenn es mehr wie ein Kartenspiel ist, dann empfehle ich einen ds_stack oder ein Array, für das du dir die shuffle funktion selber schreibst.
    Falls du den Platz nutzen kannst oder etwas verschwenderischer damit umgehen willst, kannst du auch ein ds_grid verwenden, dort kannst du die funktionen so benutzen wie du es oben beschrieben brauchst.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Leider brauch ich aus dieser Liste 4 nicht identische Werte. Nur komisch das ich die geshuffelte Liste richtig drawen lässt. Diese Liste aber nur ungeshuffelt auslesen lässt -.- obwohl sie geshuffelt angezeigt wird *arg* hmm später mal schauen was er macht wenn ich diese liste in eine zweite liste schreibe und diese dann auslese :D (vielleicht geht das ja auch wenn es eine sehr bescheidene lösung wäre).
  • Habe den Fehler gefunden :) habe die sprites falsch in die liste geladen.

    so geht es nicht

    Quellcode

    1. ds_list_add(spr_list, "spr_a")


    so klappt es

    Quellcode

    1. ds_list_add(spr_list, spr_a)

    die "" mussten weg das er es nicht als Text nimmt sondern als Sprite.
    Jetzt gibt das draw event zwar nur noch zahlen aus aber die objekte übernemen den code mit den sprites richtig.