Duda con Write() y Write_var()..

Started by Erkosone, March 16, 2012, 02:51:10 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Erkosone

Hola, estoy intentando escribir en pantalla un texto almacenado en un string dentro de una Struct y por algún motivo que desconozco me da error.


La Struct es esta:



   STRUCT HI_SCORES[3];      // ARCHIVO LOCAL DE RANKING
        STRING NAME;
        INT SCORE;
   END


Y la linea donde intento pintar en pantalla el valor es esta:   WRITE_VAR(FNT_3, X-65, Y-20, 0, HI_SCORES[0].NAME);


Creo que estoy tan cegado con el código que no soy capaz de ver el error.. alguien puede ayudarme?

SplinterGU

que error te da? podes poner la salida o una captura?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Erkosone

Por supuesto que si, gracias por la pronto respuesta, aquí tienes la captura completa:

SplinterGU

pense que era problema del compilador...

luego veo de armar un ejemplo y probarlo... si ya tienes un ejemplo armado y me lo puedes pasar, mejor asi te respondo mas rapido.

saludos.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Erkosone

Gracias, preparo un sample del código y te lo cuelgo aquí mismo, dame un minuto.

Erkosone

Parece que en un ejemplo separado funciona bien, ahora si que me he quedado extrañado, si te parece bien puedo pasarte el juego completo por MP, son pocas lineas, es un juego que estoy portando a BennuGD y estoy empezando, tiene poco código.


Lo preparo y te mando el link, si puedes darle un ojo haber si hay algo mal pues te lo agradezco, si no pues nada, gracias igualmente.

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

claro, tu problema es que no podes hacer fwrite y fread para strings, las variables strings son un identificador que representa una string en memoria... si haces eso, entonces cuando cargas, cargas cualquier cosa, cargar una string que no existe en memoria.

tenes que usar SAVE y LOAD

antes del write, pone...

hi_scores[0].name = "";

y vas a ver como funciona.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Erkosone

Vaya.. no imaginaba que fuera algo así, gracias por la ayuda Splinter, de verdad que esto no lo hubiera descubierto jamás jeje..
Muchas gracias por mirarlo  :D

SplinterGU

reinicia antes las strings y guardalas... o mejor en lugar de strings usa char[];

por ejemplo

char name[32];

esto lo accedes como una string, pero tienes un espacio ya alocado para las mismas. solo debes asegurarte que la string dentro termine en un caracter 0 (no el numero, sino de valor cero).

de nada (y por favor corrije esos creditos... :D)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Erkosone

mm.. lo de char es buena idea, así no modifico nada mas del código, voy a hacerlo así  :D


Y si, eso ha sido un desliz curioso  :-[ , tengo que encontrar el template de esa linea y modificarlo.
Gracias por la ayuda, esto no lo hubiera solucionado fácilmente jeje..

Erkosone