Problema con get_glyph

Started by master, April 11, 2014, 08:45:48 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

master

No se como explicar este problema, resulta que en mi juego escribo en un map, extrayendo las letras de una fuente.

letra=get_glyph(font1,page_act.dialogo[lineaactual][i]);
say("letra ID "+letra);
get_point(0,letra,1,&xoffset,&yoffset);
get_point(0,letra,2,&xadvance,&yadvance);
map_put(0,textos[0].graph,letra,xadvance*ii+xoffset,(lineaactual)*14+yoffset);
unload_map(0,letra);


El map donde escribo está alojado en el graph de un proceso llamado textos[0], dentro de este proceso sucede algo así

graph=map_new(ancho,lineas+1,8);
map_clear(0,graph,rgb(0,0,0));
loop
        frame;
end
OnExit
        map_unload(0,graph);


estuve monitoreando las ID que le asigna a cada gráfico, tanto para letra (donde actúa el get_glyph) como para textos[0].graph.
Resulta que si hago exactamente lo mismo en mi juego (me muevo por tal menu, y luego selecciono tal opción), osea, genero el numero preciso de gráficos en pantalla, llega el momento en que get_glyph, intenta darle el mismo ID a letra que el que ya tenia asignado textos[0].graph, y por lo tanto, mi gráfico deja de verse en pantalla (y en algunos casos el juego muere), he revisado también si el proceso donde está alojado el map sigue existiendo, y realmente sigue existiendo, no hay razón para que esto suceda.

¿podría deberse a algún bug en get_glyph?

master

Revivo este tema porque no he podido solucionar el problema mencionado, lo explico brevemente:

El juego inicia y en un proceso llamado textos[0] creo un mapa  y lo uso como grafico para este proceso

despues, en otra parte del juego, extraigo letra por letra de una fuente y las voy colocando (segun convenga para representar un dialogo) en el textos[0].graph.

al hacer get_glyph, en un momento especifico, de pronto, bennu devuelve el mismo ID que el ID asignado con anterioridad al graph de mi proceso textos[0], siendo que aun existe y no he descargado el grafico, y por lo tanto, el grafico desaparece de la pantalla repentinamente.

panreyes

Holas Máster,


Pregunta: ¿Para qué necesitas get_glyph?


Yo suelo utilizar mis propias fuentes en FPG. Si le pegas un vistazo a la PiX Plantilla (la que sirve para Android) podrás ver cómo funciona un poco.

SplinterGU

un codigo de ejemplo por favor.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

master

Es dificil pasar codigo de este caso, no puedo aislar el problema, además de que no ocurre siempre, por ahora lo he arreglado (mas no corregido), solo moví un par de lineas de un lugar a otro, y por ahora funciona.

Pixel, uso get_glyph porque estoy usando una fuente fnt, pero solo como contenedor (esto lo hago porque el fnt tiene los datos de centro, offset y advance que necesito para alinear y colocar correctamente las letras en pantalla), es una forma de escribir con una fuente en varios idiomas de alfabetos distintos, con esto logro escribir en mi juego en ruso, ingles, español y japones, tal vez se pueda hacer de una mejor manera. Ya chequé la pix plantilla y se parece un poco a lo que yo hice (solo que con fpg), solo que se ve mas limpio y ordenado  ;D gracias.

creo que dejaré esto así, si me vuelve a dar problemas, pues subiré el juego para que me ayuden, pero por ahora se me hace demasiado trabajo. Cuando algo va avanzado, es dificil ponerse a ver detalles. gracias

SplinterGU

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