Bennu Game Development

Foros en Español => Otros DIV-likes => PixTudio => Topic started by: alicesimu on October 26, 2016, 10:50:11 AM

Title: Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on October 26, 2016, 10:50:11 AM
Buenas a todos

no se si es un mal comportamiento del propia version Pixtudio o que

pero creo NO entender la logica del codigo que devuelve la variable ascii

se supone que el numero que debe devolver debe ser de la tabla ASCII como en esta web.
http://www.elcodigoascii.com.ar/

Debe ser así: ejemplos
valor ascii = tecla [simbolo]
32 = espacio [ ]
97 = letra a [a]
165 = letra Ñ [Ñ]


pero no logo imprimir en texto el codigo ascii equivalente.
tengo este codigo de ejemplo... pero quiero convertir el valor ascii a texto(string) equivalente.
http://wiki.bennugd.org/index.php?title=Ascii

import "mod_text"
import "mod_key"
import "mod_video"
import "mod_wm"
import "mod_string"

process main()
private
string text;

begin
    set_mode(640,320);

    write( 0, 60, 10, 0, "Use lower and upper case characters to see the difference");
    write( 0, 60, 20, 0, "between ascii and scan_code.    (ESC to exit)  ");

    write_string( 0, 60, 40, 0,&text);
    write_var( 0, 110, 40, 0, ascii);

    write( 0, 26, 50, 0, "scan_code: ");
    write_var( 0, 110, 50, 0, scan_code);
write_var( 0, 110, 60, 0,shift_status);

repeat
text="ascii: "+chr(scan_code);

        frame;
    until(key(_esc) or exit_status);
end


use el Chr()
http://wiki.bennugd.org/index.php?title=Chr
para convertir ese valor ascii a caracter textual equivalente.
en cambio la funcion: chr si funciona bien.

ejemplo: chr(165) = Ñ

pero no funciona ascii, me da simbolos raros por que el numero que devuelve ascii NO ES CORRECTO

Adjunto 2 capturas:
Captura_001 = pulsando la tecla 1
Captura_002 = pulsando la tecla espacio


Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: panreyes on October 26, 2016, 11:50:30 AM
Prueba con ""+char :)
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: Drumpi on October 26, 2016, 06:04:35 PM
¿Y por qué haces chr(scan_code) en lugar de chr(ascii), que es el que te da el valor ascii de la letra que pulsas (incluido si es mayúscula, si está acentuada, etc...)?
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: DCelso on October 26, 2016, 06:28:40 PM
ASCII solo son los 128 primeros caracteres, no está la ñ. y siempre son los mismos.

"Ascii extendido" son los 128 restantes y son donde están el problema, en cada región fueron creando los suyos y hay un lio de cojones liado con eso. MSDOS usaba CP850 en cambio windows en el oeste de europa usaba el CP1252", luego cambió  a ISO-8859-1 (https://en.wikipedia.org/wiki/ISO-8859-1)

y actualmente todos los sistemas operativos tienden a usar utf-8, que usa esos 128 caracteres últimos para poder mapear todos los que existían hasta entonces, por tanto con codificación utf-8 puedes escribir cualquier caracter conocido hasta ahora. ya que es de longitud variable. Es decir, hasta el momento todos los caracteres se codificaban con solo 8 bits, con utf8 un caracter puede ocupar más de 8, (siempre múltiplos de éste por eso lo del 8 de su nombre)

Dicho esto. bennu (y fenix), en fnt, tiene solo emulado cp850, si pones eso hace un mapeo para corresponder con esa codificación. si pones cualquier otro valor, no hace mapeo alguno y deja pasar cualquier codificación que crees. Es por eso que fnt maker por defecto no usa cp850.

Lo único seguro hasta hoy son los 127 primeros caracteres que siempre han permanecido inalterados. :D, para el resto hay que estar siempre con prueba de "codepage" :D




Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on October 26, 2016, 06:49:25 PM
Quote from: Drumpi on October 26, 2016, 06:04:35 PM
¿Y por qué haces chr(scan_code) en lugar de chr(ascii), que es el que te da el valor ascii de la letra que pulsas (incluido si es mayúscula, si está acentuada, etc...)?

chr(ascii) ??? no se me ocurrio...
lo probare.

Quote from: DCelso on October 26, 2016, 06:28:40 PM
ASCII solo son los 128 primeros caracteres, no está la ñ. y siempre son los mismos.

"Ascii extendido" son los 128 restantes y son donde están el problema, en cada región fueron creando los suyos y hay un lio de cojones liado con eso. MSDOS usaba CP850 en cambio windows en el oeste de europa usaba el CP1252", luego cambió  a ISO-8859-1 (https://en.wikipedia.org/wiki/ISO-8859-1)

y actualmente todos los sistemas operativos tienden a usar utf-8, que usa esos 128 caracteres últimos para poder mapear todos los que existían hasta entonces, por tanto con codificación utf-8 puedes escribir cualquier caracter conocido hasta ahora. ya que es de longitud variable. Es decir, hasta el momento todos los caracteres se codificaban con solo 8 bits, con utf8 un caracter puede ocupar más de 8, (siempre múltiplos de éste por eso lo del 8 de su nombre)

Dicho esto. bennu (y fenix), en fnt, tiene solo emulado cp850, si pones eso hace un mapeo para corresponder con esa codificación. si pones cualquier otro valor, no hace mapeo alguno y deja pasar cualquier codificación que crees. Es por eso que fnt maker por defecto no usa cp850.

Lo único seguro hasta hoy son los 127 primeros caracteres que siempre han permanecido inalterados. :D, para el resto hay que estar siempre con prueba de "codepage" :D


El que yo usaria es el charset del Sistema BennuGD usa por defecto, en las FNT generadas abria que selecionar ese charset.

Por eso abri un topic en la mesa de ayuda con para el momento que Genere FNT y no liarla y creerme que es un bug.

juraria que el Div2, es el viejo charset.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on October 26, 2016, 06:52:01 PM
Quote from: Drumpi on October 26, 2016, 06:04:35 PM
¿Y por qué haces chr(scan_code) en lugar de chr(ascii), que es el que te da el valor ascii de la letra que pulsas (incluido si es mayúscula, si está acentuada, etc...)?

pues no es eso.

chr no funciona mal, es el valor ASCII que esta mal....

chr se mira el valor de la tabla ASCII tradicional.

ahora bien la variable que me devulver ASCII no cuencide en la tabla ASCII
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on October 26, 2016, 10:15:54 PM
finalmente tiene futura solución? si se lo miraran...  :'( :'( :'(

para mi esa variable me sirve para que el usuario pueda escribir su nombre de jugador, por ejemplo.
si no mi proyecto carecerá de que el usuario ponga el nombre del personaje.

scan_code si funciona como debe ser.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 27, 2016, 04:48:55 AM
scan_code no es lo mismo que ascii... esto es scan_code

https://es.wikipedia.org/wiki/Anexo:Scan_code
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 27, 2016, 04:51:37 AM
scan_code funciona como deberia funcionar...

la variable que vos estas necesitando se llama "ASCII"
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 27, 2016, 05:00:35 AM
process main()
private
string text;

begin
    set_mode(640,320);

    write( 0, 60, 10, 0, "Use lower and upper case characters to see the difference");
    write( 0, 60, 20, 0, "between ascii and scan_code.    (ESC to exit)  ");

    write_string( 0, 60, 40, 0, &text);
    write_var( 0, 210, 40, 0, ascii);

    write( 0, 26, 50, 0, "scan_code: ");
    write_var( 0, 110, 50, 0, scan_code);
    write_var( 0, 110, 60, 0, shift_status);

    repeat
                if ( ascii )
                        text="ascii: "+chr(ascii);
                end
        frame;
    until(key(_esc) or exit_status);
end
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 27, 2016, 05:03:41 AM
scan_code no tiene que ver con la representacion/codificacion del caracter que sale tras la pulsacion de la tecla, scan_code es el identificador a nivel hardware de la tecla, digamos, el id de la tecla.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on October 27, 2016, 06:17:04 AM
solo digo que ASCII no funciona bien, da unos valores que no corresponden a la tabla ASCII.

Se que scan_code no tiene nada que ver con la tabla ascii, pero se que da los valores correctos a las posiciones de las teclas fisicas del teclado.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 27, 2016, 12:33:10 PM
Quote from: alicesimu on October 27, 2016, 06:17:04 AM
solo digo que ASCII no funciona bien, da unos valores que no corresponden a la tabla ASCII.

Se que scan_code no tiene nada que ver con la tabla ascii, pero se que da los valores correctos a las posiciones de las teclas fisicas del teclado.

tenes mas el codigo que estas probando...


text="ascii: "+chr(scan_code);

a mi me funciona de maravillas, por favor, prueba el codigo que puse yo
(http://forum.bennugd.org/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABs0lEQVQ4jY2SP4viQBiHX0UQWz/AXb+VX8Iu/YqFhdhcd5BKEOTKC9jJFYrFgo3FIjYiCRauhTCQDMp4bJFklzCuLJLOWNj8rpDMJt7u7Q08xQzze953/hAR0el4QJLw8KR4fXkE/Wtch01zjP6gmxLsd9uPJafjAf1BF82WjmZLR61eRa1eVfNmS4cMxP8JksGk6FPB6XjAii1Qq1fBBYMMBL79+InvDIrbB0CzIpSmQHF0RnF0vkiTFxZX7A+6MOzwU0FxdEZKYJpj1fp1eO5KzF0JzYreF/iekzr77QMUhh2q1zDsUIULPQl6fXkEFww53cWKLWCaY3DBVMuaFWHuSsT7fM/5W5DTXYUMBGQgUJoCpelFst9tcc84DDuE7znQrAiFnrwIkuGY/W6rBIYdQgYC7RmHZkXwPQf3jL8JiCglISLKVCaqzfhZfc9RcMFwc/eMfGd9EWQbS+R0F9nGEtnGEpnKBJnKJFWxPNygPNygPePggqE942nBdTjG9xyUhxvVcqEnsWILrNjiTfCRJN9ZI99Zp8LxWsy73ztTmYCI6ObuGV/7Tym+/PqtICL6A7F/dNYyWabFAAAAAElFTkSuQmCC)
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 27, 2016, 12:36:21 PM
Quote from: DCelso on October 26, 2016, 06:28:40 PM
ASCII solo son los 128 primeros caracteres, no está la ñ. y siempre son los mismos.

"Ascii extendido" son los 128 restantes y son donde están el problema, en cada región fueron creando los suyos y hay un lio de cojones liado con eso. MSDOS usaba CP850 en cambio windows en el oeste de europa usaba el CP1252", luego cambió  a ISO-8859-1 (https://en.wikipedia.org/wiki/ISO-8859-1)

y actualmente todos los sistemas operativos tienden a usar utf-8, que usa esos 128 caracteres últimos para poder mapear todos los que existían hasta entonces, por tanto con codificación utf-8 puedes escribir cualquier caracter conocido hasta ahora. ya que es de longitud variable. Es decir, hasta el momento todos los caracteres se codificaban con solo 8 bits, con utf8 un caracter puede ocupar más de 8, (siempre múltiplos de éste por eso lo del 8 de su nombre)

Dicho esto. bennu (y fenix), en fnt, tiene solo emulado cp850, si pones eso hace un mapeo para corresponder con esa codificación. si pones cualquier otro valor, no hace mapeo alguno y deja pasar cualquier codificación que crees. Es por eso que fnt maker por defecto no usa cp850.

Lo único seguro hasta hoy son los 127 primeros caracteres que siempre han permanecido inalterados. :D, para el resto hay que estar siempre con prueba de "codepage" :D






estas equivocado, si sale la ñ con ascii...
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: DCelso on October 27, 2016, 02:25:12 PM
Error.
eres tú el que estás equivocado.

https://es.wikipedia.org/wiki/ASCII (https://es.wikipedia.org/wiki/ASCII)

(http://forum.bennugd.org/index.php?action=dlattach;topic=4368.0;attach=3737)

A no ser que tu llames ASCII al ASCII extendido ...

Ah bueno, tu te refieres a la variable bennuGD. ok, ok. Asín, sí.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 27, 2016, 03:08:00 PM
Quote from: DCelso on October 27, 2016, 02:25:12 PM
Error.
eres tú el que estás equivocado.

https://es.wikipedia.org/wiki/ASCII (https://es.wikipedia.org/wiki/ASCII)

(http://forum.bennugd.org/index.php?action=dlattach;topic=4368.0;attach=3737)

A no ser que tu llames ASCII al ASCII extendido ...

Ah bueno, tu te refieres a la variable bennuGD. ok, ok. Asín, sí.

claro, me refiero a bennugd/div/etc...
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on October 27, 2016, 03:37:54 PM
Quote from: SplinterGU on October 27, 2016, 12:33:10 PM
Quote from: alicesimu on October 27, 2016, 06:17:04 AM
solo digo que ASCII no funciona bien, da unos valores que no corresponden a la tabla ASCII.

Se que scan_code no tiene nada que ver con la tabla ascii, pero se que da los valores correctos a las posiciones de las teclas fisicas del teclado.

a mi me funciona de maravillas, por favor, prueba el codigo que puse yo

(http://i.imgur.com/EjfqR8E.png)

en resumen:
al pulsar la tecla [a] minusculas.

scan_code es 30 tecla de hardware esta bien.

ascii me da 4??? y claro usando chr(4) da ese simbolo de rombo,
4 en la tabla ascii ese simbolo.

ascii deberia devolver 97, si pulso [a]
en cambio de devuelve 4??? como puedes ver en mi captura de pantalla.

y la Ñ es el código 165 (ascii extendido C850)
Se que existe las 2 versiones en BennuGD
-C850 https://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_850
-ISO 8859-1 https://es.wikipedia.org/wiki/ISO/IEC_8859-1

Por lo menos la fuente de sistema trabaja en C850 ascii extendido.
ahora bien las FNT generadas... tengo dudas

creo que no tengo nada mas que decir y demostrar que algo raro pasa con la variable ascii
por lo menos la version que viene en Pixtudio, puede no funcionar bien.
ahora bien la version original de BennuGD de la ultima revision 335 puede funcionar bien.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: master on October 27, 2016, 11:50:13 PM
De hecho, en BennuGd la fuente del sistema en realidad es CP-437, no CP-850.
https://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_437

En Pixtudio no se cual tenga.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: panreyes on October 28, 2016, 12:08:25 AM
Acabo de comprobarlo: PixTudio y BennuGD devuelven cosas diferentes en la variable ascii (que, por cierto, no sabía ni que existía :|)

No sé cuál será la correcta
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: Drumpi on October 28, 2016, 12:46:31 AM
Pues este es el código que he usado en el editor de mapas de tiles, en los cuadros de texto para escribir nombres, y funciona bien en todas las versiones de Bennu que he probado:

loop
        temp=ascii;
        if (temp_ant!=temp)
            switch (temp)
            case 8: *iwt_text=substr(*iwt_text,0,-1); end
            case 32..255: *iwt_text=*iwt_text+chr(temp); end
            end //switch
            temp_ant=temp;
        end
        frame;
end


No he incluido ni el retorno de carro para terminar de escribir ni otros botones auxiliares (sólo borrar), pero si teneis alguna duda, ahí está el programa :D
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on October 28, 2016, 05:10:11 AM
Quote from: panreyes on October 28, 2016, 12:08:25 AM
Acabo de comprobarlo: PixTudio y BennuGD devuelven cosas diferentes en la variable ascii (que, por cierto, no sabía ni que existía :|)

No sé cuál será la correcta

no he probado de compilar con Bennugd(fuera de pixtudio), probablemente funcione bien.
A mi me da un valor incorrecto en pixtudio.

Si te dan cosas diferentes, es que el de pixtudio tiene el bug de la variable ascii

si pulsas espacio, deberia dar el valor 32, si te da otra cosa esta mal.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on October 28, 2016, 05:13:21 AM
Quote from: master on October 27, 2016, 11:50:13 PM
De hecho, en BennuGd la fuente del sistema en realidad es CP-437, no CP-850.
https://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_437

En Pixtudio no se cual tenga.

de veras??, lo revisare cuando lo pruebe en BennuGD (no en pixtudio que tiene bug).
Graciass
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 28, 2016, 11:47:30 AM
Quote from: alicesimu on October 27, 2016, 03:37:54 PM
Quote from: SplinterGU on October 27, 2016, 12:33:10 PM
Quote from: alicesimu on October 27, 2016, 06:17:04 AM
solo digo que ASCII no funciona bien, da unos valores que no corresponden a la tabla ASCII.

Se que scan_code no tiene nada que ver con la tabla ascii, pero se que da los valores correctos a las posiciones de las teclas fisicas del teclado.

a mi me funciona de maravillas, por favor, prueba el codigo que puse yo

(http://i.imgur.com/EjfqR8E.png)

en resumen:
al pulsar la tecla [a] minusculas.

scan_code es 30 tecla de hardware esta bien.

ascii me da 4??? y claro usando chr(4) da ese simbolo de rombo,
4 en la tabla ascii ese simbolo.

ascii deberia devolver 97, si pulso [a]
en cambio de devuelve 4??? como puedes ver en mi captura de pantalla.

y la Ñ es el código 165 (ascii extendido C850)
Se que existe las 2 versiones en BennuGD
-C850 https://es.wikipedia.org/wiki/P%C3%A1gina_de_c%C3%B3digos_850
-ISO 8859-1 https://es.wikipedia.org/wiki/ISO/IEC_8859-1

Por lo menos la fuente de sistema trabaja en C850 ascii extendido.
ahora bien las FNT generadas... tengo dudas

creo que no tengo nada mas que decir y demostrar que algo raro pasa con la variable ascii
por lo menos la version que viene en Pixtudio, puede no funcionar bien.
ahora bien la version original de BennuGD de la ultima revision 335 puede funcionar bien.

yo solo te puedo decir de bennugd... de pixtudio lamentablemente no es mi terreno...
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 28, 2016, 11:56:17 AM
efectivamente pixtudio hace algo raro, no entre en detalles en el analisis, pero para obtener el ascii hace un                         

asc = iso88591_to_cp850[e.key.keysym.scancode & 0xFF];

iso88591_1 -> cp850, del scancode...

edit: veo que las tablas son las mismas de bennugd original, pero el problema parece que esta en que se usa para acceder a la tabla, lo correcto es usar e.key.keysym.sym en lugar de e.key.keysym.scancode.

e.key.keysym.sym considera el layout del teclado, y asi funciona bien en bennugd.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on October 29, 2016, 09:29:09 AM
Te pido disculpas por no analizar detalladamente de un principio que se trataba de pixtudio, no de bennugd, y así descartar un bug que no existe en uno de los 2.

Por eso al principio no entendí por que te funcionaba bien la variable y a mi no, claro lo compilo con pixtudio, ya he avisado al desarrollador de que tiene un bug que arreglar.

No hay prisa por eso
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on October 30, 2016, 11:42:26 PM
Quote from: alicesimu on October 29, 2016, 09:29:09 AM
Te pido disculpas por no analizar detalladamente de un principio que se trataba de pixtudio, no de bennugd, y así descartar un bug que no existe en uno de los 2.

Por eso al principio no entendí por que te funcionaba bien la variable y a mi no, claro lo compilo con pixtudio, ya he avisado al desarrollador de que tiene un bug que arreglar.

No hay prisa por eso

no me tienes que pedir disculpas, en todo caso deberia yo pedirlas, ya que estoy en la seccion PixTudio.

por otro lado, imagino que josebita armo esto con una tabla en base a scancodes y utf-8, pero se le escapo lo otro... no se, la verdad que estoy suponiendo...
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: josebita on November 02, 2016, 02:23:44 PM
Gracias a todos por mirarlo. Como ya sabéis, a PixTudio le dedico ratos que tengo libres o cuando quiero hacer cosas que me parecen interesantes (lo de mod_steam debería molar una vez que esté funcionando:)).

Por otra parte: PixTudio seguro que tiene muchos bugs que BennuGD no tiene así que cualquier cosa que veais rara, por favor, reportadla aquí (https://bitbucket.org/josebagar/pixtudio/issues).


[Edito] He creado el bug aquí (https://bitbucket.org/josebagar/pixtudio/issues/69/wrong-ascii-values-being-reported), por si alguien quiere seguirlo.
[Edito 2] He subido el cambio que propone Splinter al repositorio. Mañana compruebo si el comportamiento es el mismo que el de BennuGD y os cuento.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on November 03, 2016, 03:11:43 AM
genial joseba!
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: josebita on November 03, 2016, 02:31:16 PM
Bueno, el cambio mejora el comportamiento pero no lo arregla por completo.

Veo que hay bastantes discrepancias entre los valores que da Bennu y los que da PixTudio... Sigo en ello, aunque la mayor parte de las teclas "normales" ya deberían dar el mismo valor en ambos motores.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on November 03, 2016, 02:50:06 PM
Quote from: josebita on November 03, 2016, 02:31:16 PM
Bueno, el cambio mejora el comportamiento pero no lo arregla por completo.

Veo que hay bastantes discrepancias entre los valores que da Bennu y los que da PixTudio... Sigo en ello, aunque la mayor parte de las teclas "normales" ya deberían dar el mismo valor en ambos motores.

si las teclas normales coinciden, si...

esperare la siguiente beta, para comprobar como a mejorado el sistema de ascii, bueno la variable global.

Si tiene en consideración las Mayusculas, simbolos comunes(Shift) y simbolos especiales(Alt gr).

Por ahora no me corre prisa eso.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: josebita on November 03, 2016, 02:55:45 PM
Quote from: alicesimu on November 03, 2016, 02:50:06 PM
Quote from: josebita on November 03, 2016, 02:31:16 PM
Bueno, el cambio mejora el comportamiento pero no lo arregla por completo.

Veo que hay bastantes discrepancias entre los valores que da Bennu y los que da PixTudio... Sigo en ello, aunque la mayor parte de las teclas "normales" ya deberían dar el mismo valor en ambos motores.

si las teclas normales coinciden, si...

esperare la siguiente beta, para comprobar como a mejorado el sistema de ascii, bueno la variable global.

Si tiene en consideración las Mayusculas, simbolos comunes(Shift) y simbolos especiales(Alt gr).

Por ahora no me corre prisa eso.
¡Uy!, ¡no, no! Parece que funcionan igual las letras del alfabeto inglés y los números que están encima de las letras.
Cosas como "Shift", "Alt", "Ctrl" y teclado numérico (entre otros) hacen cosas muy locas. Y las mayúsculas no las he probado así que seguro que también hacen locuras.

Nunca llegué a probar las funciones de teclado más allá de lo básico, la verdad. Gracias por probarlo y os aviso de los avances.

[Edito] Por cierto, me dejo el código con el que he hecho las pruebas para los cambios que ya he implementado:
import "mod_video"
import "mod_key"
import "mod_text"

Process main()
Private
string str_ascii = "", str_scancode = "";
Begin
    set_mode(800, 600);
    write_var(0, 400, 290, 4, str_ascii);
    write_var(0, 400, 310, 4, str_scancode);

    while(! key(_esc))
        str_ascii = "ASCII: " + ascii;
        str_scancode = "scan_code: " + scan_code;
        FRAME;
    End;
End
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: l1nk3rn3l on November 03, 2016, 03:37:55 PM
Joseba gracias por pasar por aqui, puedes probar la ultima beta en android ...

parece que android no coge el teclado como es...   mira el codigo fuente incluido de la ultima beta y la libkey...

Se incluye cosas como ctrl+v   y ctrl+c  que funcionan en linux y windows... pero en
android el teclado no funciona el alfabeto por lo menos.. debe ser un bug de la sdl2...


Trate de reportarlo en el foro de sdl pero no se puede postear?

Saludos Joseba
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on November 04, 2016, 02:06:19 AM
Quote from: josebita on November 03, 2016, 02:31:16 PM
Bueno, el cambio mejora el comportamiento pero no lo arregla por completo.

Veo que hay bastantes discrepancias entre los valores que da Bennu y los que da PixTudio... Sigo en ello, aunque la mayor parte de las teclas "normales" ya deberían dar el mismo valor en ambos motores.

creo que la cuestion esta en esa tabla nueva que agregaste... aunque no me acuerdo ya lo que vi hace unos dias (estoy con el sindrome Dory)... fijate sino en bennugd, aca me funciona de maravillas... y ahi podrias ver la diferencia que tenes con PixTudio.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: josebita on November 04, 2016, 02:50:47 PM
Quote from: SplinterGU on November 04, 2016, 02:06:19 AM
Quote from: josebita on November 03, 2016, 02:31:16 PM
Bueno, el cambio mejora el comportamiento pero no lo arregla por completo.

Veo que hay bastantes discrepancias entre los valores que da Bennu y los que da PixTudio... Sigo en ello, aunque la mayor parte de las teclas "normales" ya deberían dar el mismo valor en ambos motores.
creo que la cuestion esta en esa tabla nueva que agregaste... aunque no me acuerdo ya lo que vi hace unos dias (estoy con el sindrome Dory)... fijate sino en bennugd, aca me funciona de maravillas... y ahi podrias ver la diferencia que tenes con PixTudio.
Tengo que ponerme a ello.
Hay varios problemas, alguno es culpa de que no le he puesto el cariño suficiente, pero también está el problema de que e.key.keysym.sym devuelve (por ejecmplo) un valor distinto para la tecla "1" encima de la "q" y del teclado numérico. Lo dicho: tengo que ponerme con ello.

[Edito] Las tablas iso88591_to_cp850 y cp850_to_iso88591 son las mismas que las dos_to_win y win_to_dos de BennuGD, si no me equivoco. Sólo las renombré. La que sí es nueva es cp850_to_utf8, que la necesito para soportar las fuentes TTF, pero yo diría que esa funciona sin problemas. Lo digo porque la solución de Bennu no me vale, según entiendo.

Quote from: l1nk3rn3l on November 03, 2016, 03:37:55 PM
Joseba gracias por pasar por aqui, puedes probar la ultima beta en android ...

parece que android no coge el teclado como es...   mira el codigo fuente incluido de la ultima beta y la libkey...

Se incluye cosas como ctrl+v   y ctrl+c  que funcionan en linux y windows... pero en
android el teclado no funciona el alfabeto por lo menos.. debe ser un bug de la sdl2...


Trate de reportarlo en el foro de sdl pero no se puede postear?

Saludos Joseba
Tendrán problemas con el spam, imagino. Habrá que suscribirse a la lista para postear. Lo miraré, pero: ¿Ctrl+C/Ctrl+V funcionan en Android normalmente?
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on November 04, 2016, 03:09:07 PM
Quote from: josebita on November 04, 2016, 02:50:47 PM
...pero: ¿Ctrl+C/Ctrl+V funcionan en Android normalmente?

Si funciona, por lo menos probé de Pegar en un block de notas, el texto que seteo en el porta papeles la aplicacion,
me falta probar de copiar un texto en el porta papeles y entrar en la aplicación(creado con pixtudio) a ver si puede obtener el porta papeles android.
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: josebita on November 04, 2016, 03:22:32 PM
Quote from: alicesimu on November 04, 2016, 03:09:07 PM
Quote from: josebita on November 04, 2016, 02:50:47 PM
...pero: ¿Ctrl+C/Ctrl+V funcionan en Android normalmente?

Si funciona, por lo menos probé de Pegar en un block de notas, el texto que seteo en el porta papeles la aplicacion,
me falta probar de copiar un texto en el porta papeles y entrar en la aplicación(creado con pixtudio) a ver si puede obtener el porta papeles android.
OK, gracias. ¿Me ponéis un bug en bitbucket para que no se me olvide?
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: SplinterGU on November 04, 2016, 05:57:19 PM
Quote from: josebita on November 04, 2016, 02:50:47 PM
Quote from: SplinterGU on November 04, 2016, 02:06:19 AM
Quote from: josebita on November 03, 2016, 02:31:16 PM
Bueno, el cambio mejora el comportamiento pero no lo arregla por completo.

Veo que hay bastantes discrepancias entre los valores que da Bennu y los que da PixTudio... Sigo en ello, aunque la mayor parte de las teclas "normales" ya deberían dar el mismo valor en ambos motores.
creo que la cuestion esta en esa tabla nueva que agregaste... aunque no me acuerdo ya lo que vi hace unos dias (estoy con el sindrome Dory)... fijate sino en bennugd, aca me funciona de maravillas... y ahi podrias ver la diferencia que tenes con PixTudio.
Tengo que ponerme a ello.
Hay varios problemas, alguno es culpa de que no le he puesto el cariño suficiente, pero también está el problema de que e.key.keysym.sym devuelve (por ejecmplo) un valor distinto para la tecla "1" encima de la "q" y del teclado numérico. Lo dicho: tengo que ponerme con ello.

[Edito] Las tablas iso88591_to_cp850 y cp850_to_iso88591 son las mismas que las dos_to_win y win_to_dos de BennuGD, si no me equivoco. Sólo las renombré. La que sí es nueva es cp850_to_utf8, que la necesito para soportar las fuentes TTF, pero yo diría que esa funciona sin problemas. Lo digo porque la solución de Bennu no me vale, según entiendo.

Quote from: l1nk3rn3l on November 03, 2016, 03:37:55 PM
Joseba gracias por pasar por aqui, puedes probar la ultima beta en android ...

parece que android no coge el teclado como es...   mira el codigo fuente incluido de la ultima beta y la libkey...

Se incluye cosas como ctrl+v   y ctrl+c  que funcionan en linux y windows... pero en
android el teclado no funciona el alfabeto por lo menos.. debe ser un bug de la sdl2...


Trate de reportarlo en el foro de sdl pero no se puede postear?

Saludos Joseba
Tendrán problemas con el spam, imagino. Habrá que suscribirse a la lista para postear. Lo miraré, pero: ¿Ctrl+C/Ctrl+V funcionan en Android normalmente?

me refiero a cp850_to_utf8, si, esa misma, las otras vi que son renombradas... con respecto a la e.key.keysym.sym lo maneja SDL mapeando a los caracteres que hay segun la distribucion de teclado actual, o sea, que es lo ideal que hay que usar. copio lo que dice SDL al respecto.


Values of this type (also known as keycodes or keysyms) are mapped to the current layout of the keyboard and correlate to an SDL_Scancode. The scancode identifies the location of a key press and the corresponding SDL_Keycode gives that key press meaning in the context of the current keyboard layout.


https://wiki.libsdl.org/SDL_Keycode
Title: Re:Mal comportamiento con ASCII, que alguien me lo explique!
Post by: alicesimu on November 04, 2016, 06:27:36 PM
Entonces dices que la ASCII extendida seria la pasada de moda cp850??  :(
Por que no la iso8859,
Una sugerencia para el comportamiento de la variable ASCII , cuando pulsamos teclas que son correspondientes de la ASCII extendido, una variable llamada ASCII_charset=cp850 / iso8859

Con esto la variable ASCII devolverá el numero de la tabla ASCII extendida que hemos seteado con ASCII_charset, no es lo mismo la Ñ del cp850, que la Ñ de la iso8859, devuelve un numero diferente!

De lo mismo pasa con la función chr() que el valor que devuelve corresponde a la cp850, nunca a la iso8859.

Es una observación que hago.
Así poder usar fnt que se crearon con el charset iso8859 , es por eso, de lo contrario si o si debemos crear una fnt con el charset cp850.