Escribir: "ñ", acentos y otras cosas

Started by carles, July 21, 2011, 06:54:17 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

O que use comas para separar y lo pone todo en un mismo case :D
Usa say para saber si entra, es posible que no exista ese caracter en la fuente que estés usando pero que el código funcione correctamente.
Escribe también los valores de cada letra para comprobar que realmente está haciendo el cambio.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

carles

He puesto la siguientes líneas de código en el switch:

[code language="bennu"]
case 128..255:
   texto+=""+chr(169);
   say(texto);
end
[/code]

y ni caso, pero si el valor es menor de 128 sí.

Drumpi

Escribe esto:

[code language="bennu"]
case 128..255:
    texto+=""+chr(169);
    say("Hola: " + text[a] + " " + chr(169));
end[/code]

Deberías ver una línea "Hola" por cada letra, la letra en sí, y el caracter por el que lo quieres cambiar. Eso te dará varias pistas de dónde está el error. A la hora de depurar, no asumas que los valores que añades son correctos, que la letra que buscas es la que has leido, ni que se entra en un IF.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

carles

Sigue igual, no acepta ningún case a partir del 128. ¿A vosotros os funciona?

SplinterGU

sera que text[a] es un char con signo? la verdad que no recuerdo como esta mapeado internamente pero podria ser, prueba castearlo o meterlo dentro de una variable unsigned antes de pasarlo por el switch
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

carles

Gran SplinterGU ha sido vuestra sabiduría la que ha aportado luz en estas horas oscuras, tenéis mi gratitud y un karma.

SplinterGU

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

Trecek

Hola a todos.
Lei este post hace ya algun tiempo, y ahora que me encuentro con que necesito escribir ñ-s he vuelto a releerlo, pero dada mi ignorancia no es que haya entendido gran cosa ninguna de las dos veces  :(

Tengo una fuente ttf instalada que quisiera usar en un juego, el caso es que genero la fuente con el fnt edit 2006 del bennupack y luego cuando la uso en mi programa no me salen las ñ-s al poner textos con write.

Cuando lei que keoh decia que su problema habia sido que algunos tipos de letra solo tenian caracteres ingleses pense que igual era eso lo que me pasaba a mi, pero he abierto el archivo ttf con un creador de fuentes para editarlo y añadir la ñ y veo que ya la tiene (he usado el font creator 6.0).

Splinter decia: "porque el encoding que usa tu editor de textos no es el que va para bennugd."
Imagino que cada caracter tendra correspondencia con un numero y que a eso os referis con el encoding, y que para los caracteres especiales (ñ, acentos...) tal vez la forma de codificar sea distinta dependiendo de un editor u otro. Por si sirve de algo estoy usando notepad++ y windows.

Existe alguna forma de escribir ñ-s sin tener que generar una nueva font con set glyph y save fnt?
Keoh, me podrias decir que editor de textos usas?

Gracias por adelantado.

KeoH

yo para escribir textos no uso las funciones de load_font ... sino las de load_ttf del mod_ttf , siempre q la fuente tenga el carácter de la ñ

carles

Trecek, la función que estoy haciendo es para areglar el problema que tenemos los 2, me queda poco para acabarla, en unas horas la publicare en este post.

carles

La función está acabada, salvo por un bug muy raro que hace que sea inservible.

Por alguna extraña razón cuando escribo[code language="bennu" options="singleline"]write(fuente,320,460,0,"Ñ");[/code] Bennu escribe 2 caracteres(Ç`) en vez de 1.

¡AYUDA!

[code language="bennu"]


function string text2fnt(string text);
private
   a;
   string texto;

Begin
   from a=0 to len(text);
      switch (text[a])
         case -128://Ç
            texto+=""+chr(199);
         end
         case -127://ü
            texto+=""+chr(252);
         end
         case -126://é
            texto+=""+chr(233);
         end
         case -125://â
            texto+=""+chr(226);
         end
         case -124://ä
            texto+=""+chr(228);
         end
         case -123://à
            texto+=""+chr(224);
         end
         case -122://å
            texto+=""+chr(229);
         end
         case -121://ç
            texto+=""+chr(231);
         end
         case -120://ê
            texto+=""+chr(234);
         end
         case -119://ë
            texto+=""+chr(235);
         end
         case -118://è
            texto+=""+chr(232);
         end
         case -117://ï
            texto+=""+chr(239);
         end
         case -116://î-140
            texto+=""+chr(238);
         end
         case -115://ì
            texto+=""+chr(236);
         end
         case -114://Ä
            texto+=""+chr(196);
         end
         case -113://Å
            texto+=""+chr(197);
         end
         case -112://É
            texto+=""+chr(201);
         end
         case -111://æ
            texto+=""+chr(230);
         end
         case -110://Æ
            texto+=""+chr(198);
         end
         case -109://ô
            texto+=""+chr(244);
         end
         case -108://ö
            texto+=""+chr(246);
         end
         case -107://ò
            texto+=""+chr(242);
         end
         case -106://û-150
            texto+=""+chr(251);
         end
         case -105://ù
            texto+=""+chr(249);
         end
         case -104://ÿ
            texto+=""+chr(159);
         end
         case -103://Ö
            texto+=""+chr(215);
         end
         case -102://Ü
            texto+=""+chr(220);
         end
         case -101://ø
            texto+=""+chr(248);
         end
         case -100://£
            texto+=""+chr(163);
         end
         case -99://Ø
            texto+=""+chr(216);
         end
         case -98://×
            texto+=""+chr(214);
         end
         case -97://ƒ
            texto+=""+chr(131);
         end
         case -96://á-160
            texto+=""+chr(225);
         end
         case -95://í
            texto+=""+chr(237);
         end
         case -94://ó
            texto+=""+chr(243);
         end
         case -93://ú
            texto+=""+chr(250);
         end
         case -92://ñ
            texto+=""+chr(241);
         end
         case -91://Ñ
            texto+=""+chr(209);
         end
         case -90://ª
            texto+=""+chr(170);
         end
         case -89://º
            texto+=""+chr(176);
         end
         case -88://¿
            texto+=""+chr(191);
         end
         case -87://®
            texto+=""+chr(174);
         end
         case -86://¬-170
            texto+=""+chr(172);
         end
         case -85://½
            texto+=""+chr(189);
         end
         case -84://¼
            texto+=""+chr(188);
         end
         case -83://¡
            texto+=""+chr(161);
         end
         case -82://«
            texto+=""+chr(171);
         end
         case -81://»
            texto+=""+chr(187);
         end
         case -80://░
            texto+=""+chr(129);
         end
         case -79://▒
            texto+=""+chr(129);
         end
         case -78://▓
            texto+=""+chr(129);
         end
         case -77://│
            texto+=""+chr(124);
         end
         case -76://┤-180
            texto+=""+chr(129);
         end
         case -75://Á
            texto+=""+chr(193);
         end
         case -74://Â
            texto+=""+chr(194);
         end
         case -73://À
            texto+=""+chr(192);
         end
         case -72://©
            texto+=""+chr(169);
         end
         case -71://╣
            texto+=""+chr(129);
         end
         case -70://║
            texto+=""+chr(129);
         end
         case -69://╗
            texto+=""+chr(129);
         end
         case -68://╝
            texto+=""+chr(129);
         end
         case -67://¢
            texto+=""+chr(164);
         end
         case -66://¥-190
            texto+=""+chr(165);
         end
         case -65://┐
            texto+=""+chr(129);
         end
         case -64://└
            texto+=""+chr(129);
         end
         case -63://┴
            texto+=""+chr(129);
         end
         case -62://┬
            texto+=""+chr(129);
         end
         case -61://├
            texto+=""+chr(129);
         end
         case -60://─
            texto+=""+chr(151);
         end
         case -59://┼
            texto+=""+chr(129);
         end
         case -58://ã
            texto+=""+chr(227);
         end
         case -57://Ã
            texto+=""+chr(195);
         end
         case -56://╚-200
            texto+=""+chr(129);
         end
         case -55://╔
            texto+=""+chr(129);
         end
         case -54://╩
            texto+=""+chr(129);
         end
         case -53://╦
            texto+=""+chr(129);
         end
         case -52://╠
            texto+=""+chr(129);
         end
         case -51://═
            texto+=""+chr(129);
         end
         case -50://╬
            texto+=""+chr(129);
         end
         case -49://¤
            texto+=""+chr(164);
         end
         case -48://ð
            texto+=""+chr(240);
         end
         case -47://Ð
            texto+=""+chr(208);
         end
         case -46://Ê-210
            texto+=""+chr(202);
         end
         case -45://Ë
            texto+=""+chr(203);
         end
         case -44://È
            texto+=""+chr(200);
         end
         case -43://ı
            texto+=""+chr(129);
         end
         case -42://Í
            texto+=""+chr(205);
         end
         case -41://Î
            texto+=""+chr(206);
         end
         case -40://Ï
            texto+=""+chr(207);
         end
         case -39://┘
            texto+=""+chr(129);
         end
         case -38://┌
            texto+=""+chr(129);
         end
         case -37://█
            texto+=""+chr(129);
         end
         case -36://▄-220
            texto+=""+chr(129);
         end
         case -35://¦
            texto+=""+chr(166);
         end
         case -34://Ì
            texto+=""+chr(204);
         end
         case -33://▀
            texto+=""+chr(129);
         end
         case -32://Ó
            texto+=""+chr(211);
         end
         case -31://ß
            texto+=""+chr(223);
         end
         case -30://Ô
            texto+=""+chr(212);
         end
         case -29://Ò
            texto+=""+chr(210);
         end
         case -28://õ
            texto+=""+chr(245);
         end
         case -27://Õ
            texto+=""+chr(213);
         end
         case -26://µ-230
            texto+=""+chr(181);
         end
         case -25://þ
            texto+=""+chr(254);
         end
         case -24://Þ
            texto+=""+chr(222);
         end
         case -23://Ú
            texto+=""+chr(218);
         end
         case -22://Û
            texto+=""+chr(219);
         end
         case -21://Ù
            texto+=""+chr(217);
         end
         case -20://ý
            texto+=""+chr(253);
         end
         case -19://Ý
            texto+=""+chr(221);
         end
         case -18://¯
            texto+=""+chr(175);
         end
         case -17://´
            texto+=""+chr(180);
         end
         case -16://­-240
            texto+=""+chr(173);
         end
         case -15://±
            texto+=""+chr(177);
         end
         case -14://‗
            texto+=""+chr(129);
         end
         case -13://¾
            texto+=""+chr(191);
         end
         case -13://¶
            texto+=""+chr(129);
         end
         case -12://§
            texto+=""+chr(167);
         end
         case -11://÷
            texto+=""+chr(247);
         end
         case -10://¸
            texto+=""+chr(184);
         end
         case -9://°
            texto+=""+chr(186);
         end
         case -8://¨
            texto+=""+chr(168);
         end
         case -7://·-250
            texto+=""+chr(183);
         end
         case -6://¹
            texto+=""+chr(185);
         end
         case -5://³
            texto+=""+chr(179);
         end
         case -4://²
            texto+=""+chr(178);
         end
         case -3://■-254
            texto+=""+chr(129);
         end
         case -1:
         end
         case 21://§
            texto+=""+chr(167);
         end
                  
         default:
            texto+=""+chr(text[a]);
         end
      end

   end
   
   return texto;
end

[/code]

SplinterGU

carles, eso pasa porque internamente bennugd hace un mapeo de caracteres, no siempre son los caracteres que queres imprimir, hay caracteres que nunca se pueden imprimir, es algo que se arrastra de fenix, y que quiero reveer y corregir.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Trecek

Solucionado, no sabia que podia usar ttf-s en bennu, gracias keoh, karma :)

Carles, consigas o no que funcione (y espero que si), te doy un karma por el trabajo que te estas pegando :)