background name zusammensetzen

  • Win

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

  • background name zusammensetzen

    nabend.
    hab hier grad n kleines problemchen, was sicherlich schnell gelöst werden kann.
    ich versuche für die funktion tile_add einen bestimmten background auszuwählen. ich habe mehrere backgrounds, die heissen: bg_tex_1, bg_tex_2, bg_tex_3, usw.
    und ich möchte mit dem gleichen code, verschiedene backgrounds abrufen können.

    jetzt dacht ich, man gehe zb wie folgt vor:

    GML-Quellcode

    1. bg = "bg_tex_"+string(1);
    2. tile_add(bg, xx, yy, 16, 16, ix, iy, 1000);


    das geht natürlich nicht. gamemaker macht dann bg zu 0, womit einfach der background verwendet wird, welcher als erstes in die ressourcen aufgenommen wurde...

    wie gehe ich hier richtig vor?
    merci
    PUTREFACTION ////
    ◇ ALIEN BASTARDS ◇ SLY PITCH ◇ SHOVE MASTER ◇

  • Dies ist eine ziemlich unsaubere Lösung...
    Aber du könntest es so machen:

    GML-Quellcode

    1. execute_string("bg = bg_tex_"+string(1));


    Sinnvoller wäre es aber vieleicht die background in einen array abzuspeichern:

    GML-Quellcode

    1. bgs[1] = bg_tex_1;
    2. bgs[2] = bg_tex_2;
    3. bgs[3] = bg_tex_3;
    4. usw.

    Dann kannst du einfach
    tile_add(bgs[1], xx, yy, 16, 16, ix, iy, 1000); schreiben.


    Edit: Ups... ganz vergessen dass wir hier im Studio sind >_>
    Da ist das über strings wirklich nicht möglich.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DragonGamer ()

  • Du kannst mit background_get_name(index) den Namen eines Backgroundes abfragen, du müsstes nur alle Backgrounds durchgehen. Um die Anzahl aller backgrounds zu erfahren müsstes du einen background erstellen (background_add_from_surface oder so) und dann eben alle Indexes durchgehen von 0. Am Anfang könntest du das ganze auch in einer ds_map speichern.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • danke. ich dachte es geht auch mit weniger schreibarbeit. :P
    execute_string hatt ich auch schon im sinn. funktioniert aber bei gm studio nicht mehr.
    ich habe kurzerhand ne if abfrage gemacht. hehe

    GML-Quellcode

    1. if (bg_nr = 1) {bg = bg_tex_1;}
    2. if (bg_nr = 2) {bg = bg_tex_2;}
    3. if (bg_nr = 3) {bg = bg_tex_3;}
    4. if (bg_nr = 4) {bg = bg_tex_4;}
    5. if (bg_nr = 5) {bg = bg_tex_5;}
    6. if (bg_nr = 6) {bg = bg_tex_6;}
    7. if (bg_nr = 7) {bg = bg_tex_7;}
    8. if (bg_nr = 8) {bg = bg_tex_8;}


    sollte gehen.
    erhalte zwar weiterhin fehlermeldungen, liegt aber sicher woanders.

    danke euch.
    PUTREFACTION ////
    ◇ ALIEN BASTARDS ◇ SLY PITCH ◇ SHOVE MASTER ◇

  • Ich weiss zwar nicht wie dein Projekt aufgebaut ist, aber eventuell könntest du ja gleich direkt eine Variable verwenden.
    Also z.B "bg_nr = bg_tex_2" und dann einfach immer die Variable bg_nr benutzen.
    Das funktioniert natürlich nur wenn du nicht mit dieser Variablen rechnen musst.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • DragonGamer schrieb:

    Ich weiss zwar nicht wie dein Projekt aufgebaut ist, aber eventuell könntest du ja gleich direkt eine Variable verwenden.
    Also z.B "bg_nr = bg_tex_2" und dann einfach immer die Variable bg_nr benutzen.
    Das funktioniert natürlich nur wenn du nicht mit dieser Variablen rechnen musst.


    ne, es geht darum das tile aus einer datei zu lesen. und da schreib ich für jeden background ne nummer in die datei, weils so am wenigsten speicherplatz braucht.

    und ja, hab das ganze nun mit switch realisiert. funktioniert alles perfekt.
    PUTREFACTION ////
    ◇ ALIEN BASTARDS ◇ SLY PITCH ◇ SHOVE MASTER ◇

  • Benutzer online 1

    1 Besucher