Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Domenec en Mayo 10, 2013, 09:06:44 AM

Título: Poner un "0" antes de un numero [Solucionado]
Publicado por: Domenec en Mayo 10, 2013, 09:06:44 AM
Buenas a todos.
Tal vez sea muy simple, pero como hago para poner un "0" antes de un numero inferior a 10?
Ejemplo:
Coins x 07

Podria crear un if que comprobase si el valor es inferior a 10 y ponerle "manualmente" el cero pero tal vez haya una manera mas simple y automatica de hacerlo.

Gracias de ante mano.
Título: Re:Poner un "0" antes de un numero
Publicado por: romon_28 en Mayo 10, 2013, 04:01:39 PM
Create un script llamado "Ceros" y coloca esto:

var T;
T="";
repeat(argument1-ceil(argument0/argument1)){T+="0";}
return(T+string(argument0));


El metodo se usa asi:
Ceros( Valor , CantidaDeCeros )//Devuelve un string (Texto)

Ejemplo:
Ceros( Puntos , 5 );

ejemplo dibujando:
draw_text( x , y , Ceros( Puntos , 5 ) );// Se dibujara algo asi: 00512




Creo que antes en la comunidad se preguntaron lo mismo.. pero no lo encontre al script.
Título: Re:Poner un "0" antes de un numero
Publicado por: Domenec en Mayo 10, 2013, 07:10:02 PM
Gracias,  en cuanto lo pruebe edito y te cuento...  :)
Título: Re:Poner un "0" antes de un numero
Publicado por: Domenec en Mayo 11, 2013, 01:54:39 AM
He probado el script y me funciona a medias...Te cuento...
Si me pone el "0" delante del valor que deseo, pero si ese valor se incrementa sin superar el 9, el cero me desaparece.

Ejemplo:
Coins=02
Obtienes 3 monedas y en vez de poner Coins=05, te pone Coins=5.
Título: Re:Poner un "0" antes de un numero
Publicado por: TLT96 en Mayo 14, 2013, 02:12:46 AM
Cita de: Domenec en Mayo 11, 2013, 01:54:39 AM
He probado el script y me funciona a medias...Te cuento...
Si me pone el "0" delante del valor que deseo, pero si ese valor se incrementa sin superar el 9, el cero me desaparece.

Ejemplo:
Coins=02
Obtienes 3 monedas y en vez de poner Coins=05, te pone Coins=5.

Pero que es lo que quieres?

Que la variable se convierta en 03 o simplemente, la variable sea 3 pero mediante draw se vea 03?

Si seria que la variable se convierta en ese numero seria asi (Modo dificil)
Tienes que tener 2 variables ej:
global.coins=0 y
global.coinsreal=0

Usaras la variable global coins de forma normal, la variable global coinsreal es para que la variable cambie a un cero antes

en step event>execute code
global.coinsreal=global.coins
if global.coinsreal=1 global.coinsreal=01
if global.coinsreal=2 global.coinsreal=02
if global.coinsreal=3 global.coinsreal=03
if global.coinsreal=4 global.coinsreal=04
if global.coinsreal=5 global.coinsreal=05
if global.coinsreal=6 global.coinsreal=06
if global.coinsreal=7 global.coinsreal=07
if global.coinsreal=8 global.coinsreal=08
if global.coinsreal=9 global.coinsreal=09

Y ya ^^

Segundo modo:

Usas tu variable normal, como si no hubieras modificado nada
OJO: Esto sera visual las variables se mantendran en 1,2,3,etc, solo hara que tengan un 0 al frente

draw_text(x,y,""+string(global.coins))

if global.coins=1{ draw_text(x,y,"0"+string("1"))
if global.coins=2{ draw_text(x,y,"0"+string("2"))
if global.coins=3{ draw_text(x,y,"0"+string("3"))
if global.coins=4{ draw_text(x,y,"0"+string("4"))
if global.coins=5{ draw_text(x,y,"0"+string("5"))
if global.coins=6{ draw_text(x,y,"0"+string("6"))
if global.coins=7{ draw_text(x,y,"0"+string("7"))
if global.coins=8{ draw_text(x,y,"0"+string("8"))
if global.coins=9{ draw_text(x,y,"0"+string("9"))

Bueno, ambos metodos no son exactos, y hay maneras mas facil de hacerlas, ejemplo:
if global.coins>0 and global.coins<10

Pero habeces me equivoco con larger y eso, y como no tengo el game maker justo ahora no puedo testearlo, pero te aseguro de que con esos codigos te funciona bien ^^

Tienes que editarlo un poco :D
Título: Re:Poner un "0" antes de un numero
Publicado por: Silver_light en Mayo 15, 2013, 01:26:24 AM
Puedes hacer algo simple como verificar si es menor de 10, si lo es, entonces dibuja un cero antes:

if (score<10)
   draw_text(x,y,string('0')+string(score));
else
   draw_text(x,y,score);
Título: Re:Poner un "0" antes de un numero
Publicado por: Texic en Mayo 15, 2013, 02:04:11 AM
Modifiqué el script de romón para que funcione, está más simple
[gml]var nro;
nro=string(argument0)
repeat(argument1-string_length(argument0)){nro="0"+nro}
return nro[/gml]
Se usa de la misma manera. Saludos!
Título: Re:Poner un "0" antes de un numero
Publicado por: Domenec en Mayo 16, 2013, 01:47:41 PM
edito:
Al final hice el script de romon_28 modificado por Texic y funciono perfecto. Además, como dije, queda más pulido y se puede usar con cualquier numero sin tener que hacer lo de los ceros manualmente.
Millones de gracias a todos...