Anuncios Google

Acentos y Ñs

Hola a todos,

 

He emprezado a trastear con la programación en la NDS y he encontrado un tema bastante molesto, los acentos. A base de trastear con las imagen de la fuente he encontrado los espacios en los que deberían estar los caracteres acentuados y la ñ, hasta ahí bien. Pero cuado los incluyo en un texto con la función PA_BoxText, añade un espacio en blanco antes de la letra. Tengo la impresión de que pasa dos caracterés digamos "acute + Ó" y escribe el caracter que está 3 posiciones por debajo de la c minúscula.

 

Alguien tiene una idea a que caracter o a que ascci puede corresponder esto.

 

Muchas gracias por la ayuda.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de rbarcena

Ya lo tengo

Lo primero gracias a todos por vuestras aportaciones, os comento la solución que he encontrado:

 

Como decia la función PA_BoxText recorre todo el texto que le pasas y lo escribe caracter por caracter, al escribir caracteres normales escribe uno y nada más, pero si lleva un acento, diéresis o es una ñ escribe 2 caracteres. El primero se corresponede con el 3º espacio por debajo de la c minúscuala y el siguiente con la ñ o con la vocal acentuada. El codigo numérico del caracter extraño es 195, entonces en el lugar en el que la función añade cada letra, le he puesto una condición para que lo ignore.

 

Espero que esto os sea útil.

 

Saludos a todos.

Imagen de copete23

¿No os estais liando un

¿No os estais liando un poco? en la carpeta Palib hay otra llamada tools, en esta ultima hay un programita llamado dsfont, que lo que hace es crearte un mapa de caracteres con la fuente que quieras, despues te crea un bmp que puedes añadir a tu proyecto, mediante la función PA_InitCustomText, y listo, no hay mas :) Buscando por google encontrarás mas programas de este tipo, que te pasan fuentes tipo ttf a mapa de caracteres.

saludos

Imagen de rbarcena

Mapa de caracteres

Hola de nuevo

 

Entiendo que el mapa de caracteres está en <code>const unsigned short PA_text_Map</code> que define un array de coordenadas, lo he torturado hasta la saciedad, modificando los valores pero esto no se traduce en ningun cambio visible al escribir un alfabeto. 

 

Voy a cambiar la linea de ataque, estoy tunendo la funcion PA_BoxText en PA_TextSpecial.c, la funcion recibe un texto como parametro, lo recorre letra por letra y lo va escribiendo en memoria con PA_SetTileLetter y lo saca a pantalla cuando acaba con PA_SetTextTileCol.

La idea es hacer que escriba en la otra pantalla los codigos ascii de las letras que escribe, en el momento en que localicemos cual es el que escribe delante de las vocales acentuadas o de las eñes solo necesitaremos comparar y saltarnoslo al escribir.

Imagen de kNightFox

con lo facil que es hacerse

con lo facil que es hacerse una fuente customizada y cambiar el @ i # (por ejemplo) por la Ñ y ñ....

Imagen de rbarcena

Buena idea pero...

Hola MasterSonic,

La idea me parece buena, pero una vez he llegado al directorio he editado como medio millon de archivos y no acabo de ver donde está el mapa de caracteres, si sabes a que archivo debo atacar lo tendremos hecho.

 

Muchas gracias de nuevo

Imagen de The Dark Master

Lo mejor que puedes hacer es

Lo mejor que puedes hacer es ir a:

c:/devkitpro/palib/lib/lib/arm9/PA o a c:/devkitpro/palib/lib/include/arm9/

y intentar añadir la ñ en el codigo porque date cuenta de que palib esta en ingles y en ingles la ñ no existe.

salu2


Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.