SDL_keysym(3) | SDL API Reference | SDL_keysym(3) |
SDL_keysym - Keysym structure
typedef struct{
Uint8 scancode;
SDLKey sym;
SDLMod mod;
Uint16 unicode; } SDL_keysym;
The SDL_keysym structure is used by reporting key presses and releases since it is a part of the SDL_KeyboardEvent.
The scancode field should generally be left alone, it is the hardware dependent scancode returned by the keyboard. The sym field is extremely useful. It is the SDL-defined value of the key (see SDL Key Syms. This field is very useful when you are checking for certain key presses, like so:
. . while(SDL_PollEvent(&event)){
switch(event.type){
case SDL_KEYDOWN:
if(event.key.keysym.sym==SDLK_LEFT)
move_left();
break;
.
.
.
} } . .
mod stores the current state of the keyboard modifiers as explained in
SDL_GetModState. The unicode is only used when
UNICODE translation is enabled with SDL_EnableUNICODE.
If unicode is non-zero then this a the UNICODE character
corresponding to the keypress. If the high 9 bits of the character are 0,
then this maps to the equivalent ASCII character:
char ch; if ( (keysym.unicode & 0xFF80) == 0 ) {
ch = keysym.unicode & 0x7F; } else {
printf("An International Character. "); }
UNICODE translation does have a slight overhead so don't enable it unless its
needed.
SDLKey
Tue 11 Sep 2001, 23:00 | SDL |