Problema representando variables sin decimales

Started by fr0d0b0ls0n, September 09, 2008, 07:55:54 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

fr0d0b0ls0n

Quiero representar mediante un write_var o similar una variable float, pero quiero que me la muestre sin decimales. ¿Hay alguna forma que no sea pasarlo a una variable string mediante un format y representar esta?
Follow the Moeko Principle

FAETON - En Progreso
15 Criaturas de ~28 |  18 Hechizos de ~41
25 Buffs de ~50      |  19 Enfrentamientos de ~80

SplinterGU

si, hay otra forma... hace un write_int usando una variable int cuyo contenido lo seteas usando la float... var_int = var_float;
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

fr0d0b0ls0n

Quote from: SplinterGU on September 09, 2008, 08:33:47 PM
si, hay otra forma... hace un write_int usando una variable int cuyo contenido lo seteas usando la float... var_int = var_float;

Tampoco es una solución muy elegante, pero si es la única pues tendré que usar esa. Al menos es más eficiente que usar un string -_-

Lo que daría en algunas ocasiones por un write_var con algún tipo de flags...
Follow the Moeko Principle

FAETON - En Progreso
15 Criaturas de ~28 |  18 Hechizos de ~41
25 Buffs de ~50      |  19 Enfrentamientos de ~80

TYCO

Para una float sin decimales (Como dijo SplinterGU):

Forma1:
variable_int=variable_float;
wirte_int(fuente, x, y, alineacion, &variable_int);

Forma2:
variable_int=variable_float;
delete_text(texto);
texto=write(fuente, x, y, alineacion, variable_int);
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

fr0d0b0ls0n

Para la forma 2 es más sencillo usar:

delete_text(texto);
texto=write(fuente,x,y,alineacion,format(variable_float,0);

Pero odio usar tanto delete_text, en ese proceso hay entorno a 50 write, ya tuve que usar un vector para las IDs en otro proceso y no me gusto nada. :S

Por cierto, ¿un write_int consume menos recursos que delete_text y write?
Follow the Moeko Principle

FAETON - En Progreso
15 Criaturas de ~28 |  18 Hechizos de ~41
25 Buffs de ~50      |  19 Enfrentamientos de ~80

HaCkZJuaNN

sería lo más lógico..., aunque yo hago mucho delete_text write porque cambia la variable que tengo que representar(usando matrices, lo que cambia es el indice del array, y por lo tanto la variable cambia), y no me da ningún problema de performance, al menos con la última versión

TYCO

fr0d0b0ls0n eso seria una tercera forma de hacerlo tambien jeje.

HaCkZJuaNN que haces exactamente en ese array?? quizas si pones el codigo entre todos podiemos optimizarlo, porque segun te leo no termino de enterarme de que cambie el indice del array y que cambie la variable.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

HaCkZJuaNN

imagínate que tengo un array nombre[4] = "Pedro","Juan","Antonio","Manuel","Francisco";

y ahora, tengo una variable int nombre_actual

y quiero que se represente en todo momento nombre[nombre_actual], si pongo write_var(0,400,300,4,nombre[nombre_actual]) al principio, va a escribir "Pedro", todo el rato, porque representa esa variable, pero si yo cambio nombre_actual no estoy cambiando la variable... solo a qué variable me refiero.

Sé que podría hacer una variable nombre_actual_str, hacerle write_var a esa variable y asignarle todo el rato nombre[nombre_actual], y a veces lo hago, pero otras veces no, depende de la situación :P

TYCO

Vale ahora si me entere. Para evitar tantos delete_text, como has dicho que lo que realmente varias en la variable int nombre_actual, podrias hacer esto:

string nombre[4] = "Pedro","Juan","Antonio","Manuel","Francisco";
string nombre_a_mostrar;

Begin

write_string(0,400,300,4,nombre_a_mostrar)
o
write_var(0,400,300,4,nombre_a_mostrar)

Loop
...
...
// cuando varias el valor de nombre actual, harias la asignacion, o lo haces
// siempre antes del frame (como ahora) y si ha variado pues lo actualiza.
nombre_a_mostrar=nombre[nombre_actual];
Frame;
End
End

De todos modos, todo se puede hacer de muchas formas/maneras distintas.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)