Ver la versión completa : Ayuda con mapeado de botones
Whitehat
12/02/2006, 23:50
Hola estoy portando una aplicacion que a muchos os gustara, pero no voy a decir
de cual se trata, pero tengo un problemita con el mapeado de botones, ya que el original
usa los de teclado pero hay una cosa de ello q no entiendo. Os pongo una sentencia de ejemplo
switch(j){
......
.....
case SDLK_RSHIFT:
{
localKey = 0x36; <--- Me podeis decir q es esa cifra??? no es codigo ASCII xq ya loe mirao
break;
}
.....
.....
}
Venga hecharme una manica tius ^^
Si en C escribes un número entero tal cual, el compilador interpreta que ese número está en base 10. Si le añades 0x al principio, el compilador interpreta que está en base 16, o sea que es hexadecimal. Por ejemplo, 12 es diferente de 0x12.
Que por cierto, en hexadecimal, las cifras no van del 0 al 9, sino del 0 a la F (si echas cuentas, verás que son 16 en total). Con lo que puedes tener números con este aspecto: 0xF92B
Y ya concretando, 0x36 es la representación hexadecimal de 54. Podrías escribir localKey = 54 y el resultado sería exactamente el mismo. Si trabajas en Windows abre la calculadora, menú Ver->Científica. Verás que en la parte superior, justo debajo del espacio para introducir cifras, tienes Hex, Dec, Oct y Bin. Por defecto está activado Bin, pero si quieres saber cuál es el equivalente en base 10 de un número hexadecimal, activa Hex, introduce el número (en la calculadora no pongas 0x al principio), y luego activa Dec. Si trabajas en Linux, la calculadora de KDE también lo permite, pero no la tengo a mano ahora mismo. Segurísimo que desde GNOME tambén hay alguna manera.
Whitehat
13/02/2006, 00:26
Si en C escribes un número entero tal cual, el compilador interpreta que ese número está en base 10. Si le añades 0x al ........
Gracias tio pero eso si que lo habia mirado, ya que conozco los sistemas de codificacion y supuse
que era hexadecimal e hice el truco de la calculadora de windows, y exacto salia el 54.
Pero claro si suponemos q ese numero decimal representa una tecla en el teclado, en
este caso el SHIFT derecho, segun la tabla ASCII nos deberia de salir dicha tecla,
pero va a ser q no ocurre, por lo tanto ahi esta lo que no entiendo.
Si quieres te mando el archivo en si y me comentas q se le puede hacer.
Gracias tio pero eso si que lo habia mirado, ya que conozco los sistemas de codificacion y supuse
que era hexadecimal e hice el truco de la calculadora de windows, y exacto salia el 54.
Ya me extrañaba a mí que estuvieras portando algo y no supieras que eso era hexadecimal... Pues vaya rollo he soltado... :)
Pero claro si suponemos q ese numero decimal representa una tecla en el teclado, en
este caso el SHIFT derecho, segun la tabla ASCII nos deberia de salir dicha tecla,
pero va a ser q no ocurre, por lo tanto ahi esta lo que no entiendo.
Si quieres te mando el archivo en si y me comentas q se le puede hacer.
Entonces supongo que debe ser una codificación interna, ¿no? Busca dónde declara la variable localKey a ver si ahí explica algo. Y mira también qué hace luego con esa variable. Lo de portar me da la impresión de que se parece mucho a hacer de detective... :)
Whitehat
13/02/2006, 00:49
Pues me parece que localKey lo utiliza como variable de transicion para guardar los eventos
que van pasando en un array; para mas tarde hacerle un scan y sacar los eventos, esto
si no me equivoco es una funcion basica cuando se hace lectura de de teclado en SDL.
Yo voy a ver si en vez de que al pulsar SDL_RETURN y el localKey coja ese valor, le hago
que al recibir GP2X_BUTTON_START le mande el valor a localKey y funcione.
Es una chapuza pero mi profesor de programacion siempre dice q soy lo mas chapuzas del
mundo pero que no sabe como me las apaño para q funcionen las cosas XD
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.