El controlador de teclado de Allegro proporciona entrada con b�ffer y un conjunto de variables que guardan el estado actual de cada tecla. F�jese que no es posible detectar correctamente todas y cada una de las combinaciones de teclas, debido al dise�o del teclado del PC. Combinaciones de dos o tres teclas funcionar�n bien, pero si presiona m�s, probablemente las extras ser�n ignoradas (exactamente qu� combinaciones son posibles parecen variar de un teclado a otro).
int install_keyboard();
Instala el controlador de interrupciones de teclado de Allegro. Debe
llamarla antes de usar cualquier otra funci�n de teclado. Una vez
instalado el controlador no podr� usar las llamadas a sistema o las
funciones de librer�a de C para acceder al teclado. Devuelve cero con
�xito, o un n�mero negativo si hubo problemas (pero puede decidir si
quiere verificar el valor de retorno dado que es muy poco probable que
esta funci�n falle). Tenga en cuenta que en algunas plataformas el teclado
no funcionar� a no ser que haya activado un modo gr�fico, incluso si esta
funci�n devuelve cero antes de haber llamado a set_gfx_mode.
Relacionado con: keyboard_callback, keyboard_ucallback, keyboard_lowlevel_callback, remove_keyboard, poll_keyboard, key, keypressed, readkey, ureadkey, set_gfx_mode, Variables de configuraci�n est�ndar, three_finger_flag, key_led_flag, set_leds, set_keyboard_rate.void remove_keyboard();
Relacionado con: install_keyboard, allegro_exit.void install_keyboard_hooks(int (*keypressed)(), int (*readkey)());
Relacionado con: install_keyboard, keypressed, readkey.int poll_keyboard();
Relacionado con: keyboard_needs_poll, install_keyboard, key, key_shifts.int keyboard_needs_poll();
Relacionado con: poll_keyboard, install_keyboard, key.extern volatile char key[KEY_MAX];
if (key[KEY_SPACE]) printf("La barra espaciadora est� siendo pulsada\n");
Tenga en cuenta que se supone que el array representa qu� teclas est�n f�sicamente apretadas y cuales n�, por lo que sem�nticamente s�lo es de lectura.
Estos son los scancodes del teclado:
KEY_A ... KEY_Z, KEY_0 ... KEY_9, KEY_0_PAD ... KEY_9_PAD, KEY_F1 ... KEY_F12, KEY_ESC, KEY_TILDE, KEY_MINUS, KEY_EQUALS, KEY_BACKSPACE, KEY_TAB, KEY_OPENBRACE, KEY_CLOSEBRACE, KEY_ENTER, KEY_COLON, KEY_QUOTE, KEY_BACKSLASH, KEY_BACKSLASH2, KEY_COMMA, KEY_STOP, KEY_SLASH, KEY_SPACE, KEY_INSERT, KEY_DEL, KEY_HOME, KEY_END, KEY_PGUP, KEY_PGDN, KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_SLASH_PAD, KEY_ASTERISK, KEY_MINUS_PAD, KEY_PLUS_PAD, KEY_DEL_PAD, KEY_ENTER_PAD, KEY_PRTSCR, KEY_PAUSE, KEY_ABNT_C1, KEY_YEN, KEY_KANA, KEY_CONVERT, KEY_NOCONVERT, KEY_AT, KEY_CIRCUMFLEX, KEY_COLON2, KEY_KANJI, KEY_LSHIFT, KEY_RSHIFT, KEY_LCONTROL, KEY_RCONTROL, KEY_ALT, KEY_ALTGR, KEY_LWIN, KEY_RWIN, KEY_MENU, KEY_SCRLOCK, KEY_NUMLOCK, KEY_CAPSLOCK
Relacionado con: install_keyboard, poll_keyboard, key_shifts.extern volatile int key_shifts;
KB_SHIFT_FLAG KB_CTRL_FLAG KB_ALT_FLAG KB_LWIN_FLAG KB_RWIN_FLAG KB_MENU_FLAG KB_SCROLOCK_FLAG KB_NUMLOCK_FLAG KB_CAPSLOCK_FLAG KB_INALTSEQ_FLAG KB_ACCENT1_FLAG KB_ACCENT2_FLAG KB_ACCENT3_FLAG KB_ACCENT4_FLAG
Relacionado con: install_keyboard, poll_keyboard, key.int keypressed();
Relacionado con: install_keyboard, readkey, clear_keybuf, simulate_keypress.int readkey();
Esta funci�n no puede devolver car�cteres mayores que 255. Si necesita leer entradas Unicode use ureadkey() en vez de readkey()if ((readkey() & 0xff) == 'd') // por c�digo ASCII printf("Has pulsado 'd'\n"); if ((readkey() >> 8) == KEY_SPACE) // por c�digo scancode printf("Has pulsado Espacio\n"); if ((readkey() & 0xff) == 3) // ctrl+letter printf("Has pulsado Control+C\n"); if (readkey() == (KEY_X << 8)) // alt+letter printf("Has pulsado Alt+X\n");
Relacionado con: install_keyboard, ureadkey, keypressed, clear_keybuf, simulate_keypress.int ureadkey(int *scancode);
Relacionado con: install_keyboard, readkey, keypressed, clear_keybuf, simulate_ukeypress.int scancode_to_ascii(int scancode);
void simulate_keypress(int key);
Introduce una tecla en el buffer del teclado, como si el usuario la
hubiese pulsado. El par�metro est� el mismo formato que el devuelto por
readkey().
Relacionado con: install_keyboard, simulate_ukeypress, keypressed, readkey.void simulate_ukeypress(int key, int scancode);
Relacionado con: install_keyboard, simulate_keypress, keypressed, ureadkey.extern int (*keyboard_callback)(int key);
Relacionado con: install_keyboard, readkey, ureadkey, keyboard_ucallback, keyboard_lowlevel_callback.extern int (*keyboard_ucallback)(int key, int *scancode);
Relacionado con: install_keyboard, readkey, ureadkey, keyboard_callback, keyboard_lowlevel_callback.extern void (*keyboard_lowlevel_callback)(int scancode);
Relacionado con: install_keyboard, keyboard_callback, keyboard_ucallback.void set_leds(int leds);
Relacionado con: install_keyboard, key_led_flag.void set_keyboard_rate(int delay, int repeat);
Relacionado con: install_keyboard, readkey, ureadkey.void clear_keybuf();
Relacionado con: install_keyboard, keypressed, readkey, ureadkey.extern int three_finger_flag;
Relacionado con: install_keyboard.extern int key_led_flag;
Relacionado con: install_keyboard, set_leds.