Textvariablen speichern & wiedergeben

  • GM 8
  • Textvariablen speichern & wiedergeben

    Hallo, ich hab mal wieder eine Frage...und zwar:
    Ich hab eine Variable(str).
    Diese Variable möchte ich verwenden um ein Text anzeigen zu lassen, außerdem soll es mir mit jeden Text einen Rahmen zeichnen.
    Allerdings soll der Text und der Rahmen mehrere Male vorkommen.
    Deshalb benutze ich die "for i" Aussage. So erhalte ich mein Text mit Rahmen mehrmals.
    Jetzt ist das Problem: Ich will die Variable str bei den zweiten zeichnen ändern, aber wenn ich sie ändere malt es auch den selben Variablen Wert für die erste Zeichnung.

    Hat irgendjemand eine Idee wie man das verhindern kann?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Rayo ()

  • ich weiß nicht ob es geht aber du kannst ja für jeden kasten ne andere variable nehmen.
    z.B. ist global.str=3 und wenn du dann die zweite ändern willst schreibst du global.str2= str -2

    ich weiß nicht ob es geht bin selber noch anfänger , aber vielleicht ja so ähnlich

    mfg

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

  • Die Variable wird ja sicherlich in einem Draw-Event gezeichnet. Wenn du sie dort jedesmal vor dem Zeichnen änderst, dürfte es kein Problem sein. Wenn du das im Step-Event oder sonstwo anders machst, ist klar, dass es nicht klappt, weil dann am Ende vom Step, wenn alle Draw-Events abgehandelt werden, die Variable schon den neuen Wert hat. Noch eine Möglichkeit wäre auch, alle einzelnen Texte in eine Liste zu speichern und dann im Draw-Event daraus zu lesen. Also:

    GML-Quellcode

    1. //Wo auch immer du deine Varialbe definierst:
    2. list = ds_list_create()
    3. ds_list_add(list,"erster Text")
    4. ds_list_add(list,"zweiter Text")
    5. //usw

    GML-Quellcode

    1. //im Draw_Event:
    2. for (i = 0; i < ds_list_size(list); i += 1)
    3. {
    4. str = ds_list_find_value(list,i)
    5. //Rahmen oder was auch immer zeichnen
    6. draw_text(x,y,str)
    7. }

    statt list kannst du natürlich irgendeinen Namen nehmen.