String + Variable

  • String + Variable

    Hi!

    Hab grad folgendes Problem:

    ich will nen String und ne Variable zusammenführen, also ungefähr so:

    "Datei" + var_dateinr + ".Endung"

    Das soll dann dazu dienen dass beim Screenshotmachen immer die nächste Datei erstellt wird, also zunächst Datei0.Endung, dann Datei1.Endung, dann Datei2.Endung usw, je nach dem wie halt die Variable var_dateinr. ist.
    Kann mir jemand helfen ??

    edit:
    uuups, habs doch endlich rausgefunden...geht ja einfach mit string(var) bzw. real (string) *peiiinlich* :D !!!Hab wohl vor lauter Bäumen den wald nicht gesehen!
    Sorry, bitte löschen!

    edit by MewX: Nene, wird nur geschlossen. Ich wundere mich, dass es diese Frage nicht schon vorher gab. Wenn es sie aber nocheinmal gibt, dann kann man hier drauf verweisen :D.

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

  • servus
    sorry, dass ich den post wieder ausgrabe aber:
    ich hab das noch nicht ganz verstanden :(

    ich hab ein objekt dessen spite so animiert,
    dass ständig das spite wechselt
    (is progtechnisch so besser als mit der spriteanimation)

    Quellcode

    1. create:
    2. mein_sprite="sprite_soldat";
    3. animationstep=1;

    Quellcode

    1. step:
    2. sprite_index= mein_sprite + string(animationstep);
    3. animationstep=animationstep+1
    4. if(animationstep==5)
    5. {
    6. animationstep=1;
    7. }

    jetzt sollte in jedem step, sprite_index, zuerst sprite_soldat1, dann spprite_sodat2 usw...werden.
    aber nix geht
    eigentlich klar weil: dann steht da:
    "sprite_soldat1"
    statt: sprite_soldat1
    habs auch schon unendlich durchprobiert (z.B: real (mein_sprite + string(animationstep)))

    kann mir jemand helfen?
    iTeM
  • GML-Quellcode

    1. execute_string('sprite_index='+mein_sprite+string(animationstep));
    2. animationstep=animationstep+1
    3. if(animationstep==5)
    4. {
    5. animationstep=1;
    6. }


    Das löst dein Problem, execute_string führt strings als code aus.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Aber execute String ist eine böööse, bööööööse funktion wenn es um geschwindigkeit geht. Statt dessen solltest du lieber mit einem Array arbeiten.

    Quellcode

    1. Animation[0] = mein_sprite0;
    2. Animation[1] = mein_sprite1;
    3. Animation[2] = mein_sprite2;


    Das Array kann man auch mit execute_string anlegen, da es nur einmal im Create Event aufgerufen wird. Die animation selbst spielt mann dann mit

    Quellcode

    1. sprite_index = Animation[animationsstep];
    2. animationsstep+=1;
    3. if(animationsstep>4)animationsstep==0;


    ab.
    ...
  • Benutzer online 1

    1 Besucher