Immer zwei Stellen anzeigen bei Sekundenanzeige

  • GM 8

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

  • Immer zwei Stellen anzeigen bei Sekundenanzeige

    Hallo Leute,

    ich habe für mein Spiel einen Countdown erstellt welcher auch angezeigt wird. Soweit funktioniert auch alles. Doch wenn die Sekunden einstellig werden (also 0-9) dann zeigt er auch eben nur eine einstellige Zahl an. Ich hätte es aber gerne das er mir eine "0" davorstellt, also z.B. 09,08,07 etc... Ich finde das sieht irgendwie besser aus.

    Kann mir jemand erklären wie das geht? Wenn's geht bitte mit Drag and Drop, bin noch nicht so fit in GML...

    Vielen Dank im Voraus!

    Gruß,
    Pascal
  • Könntest du relativ einfach mit einem if-statement lösen:

    GML-Quellcode

    1. if (counter <= 9) //Wenn die counter variable unter oder 9 ist, wird der text mit einer 0 vor der variable gezeichnet, wenn nicht ohne. simple!11eins
    2. draw_text(x, y, "0" + string(counter));
    3. else
    4. draw_text(x, y, string(counter));

    Sollte klappen!
    :saint:

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

  • Ist nun zwar wohl gelöst, aber ich lass mir die Gelegenheit mal nicht nehmen, eine kleine Funktion aus meinem in Arbeit befindlichen Spiel rauszuhauen. :D

    GML-Quellcode

    1. // s_string_digitf(real,digits)
    2. var rl,dgt,ret,i;
    3. rl=floor(real(argument0)); // Dezimalstellen werden hier abgeschnitten, es geht nur um die Ganzzahlen.
    4. dgt=argument1;
    5. ret="";
    6. for(i=dgt-1;i>0;i-=1){
    7. if rl<power(10,i) ret+="0";
    8. }
    9. ret+=string(rl);
    10. return ret;
    Alles anzeigen


    Mit diesem Skript kannst du eine Zahl auf beliebig viele Stellen abbilden. Die Stellen vor den gültigen Ziffern (also der eingegebenen Zahl) werden mit Nullen aufgefüllt und der String des Ganzen wird dann von der Funktion zurückgegeben.
    s_string_digitf(32,10) ergäbe also: "0000000032" - 10 Stellen, also 8 Nullen vor der 32.
    Vielleicht kannst du das ja brauchen.

    Edit:
    Anwendungsbeispiel für deinen Sekundentimer:

    GML-Quellcode

    1. draw_text(x,y,s_string_digitf(/*sekundenvariable*/,2))