上一頁 | 首頁

SDL_keysym

章節:SDL API 參考 (3)
更新2001年9月11日 星期二 23:00
索引
 

名稱

SDL_keysym - Keysym結構  

結構的定義

typedef struct{
  Uint8 scancode;
  SDLKey sym;
  SDLMod mod;
  Uint16 unicode;
} SDL_keysym;

 

結構的內容

scancode
特定于硬件的掃描碼
sym
SDL虛擬的鍵碼
mod
當前按鍵的修飾鍵
unicode
轉換的字符
 

描述

SDL_keysym結構作為SDL_KeyboardEvent的一部分,用于報告按鍵是否按下或釋放。

通常不用管scancode成員,它是由鍵盤返回的依賴于硬件的掃描碼。而sym成員則是非常之重要,它是由SDL定義的鍵值(參見SDL Key Syms)。對于檢查哪一個按鍵被按下的場合,這個成員非常奏效。譬如:

.
.
while(SDL_PollEvent(&event)){
  switch(event.type){
    case SDL_KEYDOWN:
      if(event.key.keysym.sym==SDLK_LEFT)
        move_left();
      break;
    .
    .
    .
  }
}
.
.

mod存儲由SDL_GetModState表征的鍵盤修飾鍵的當前狀態。僅當通過SDL_EnableUNICODE允許UNICODE轉換時,才使用unicode。若unicode非零,則它是一個與按鍵一致的UNICODE字符。若字符最高的9位都是0,則將其映射為等效的ASCII字符:

char ch;
if ( (keysym.unicode & 0xFF80) == 0 ) {
  ch = keysym.unicode & 0x7F;
}
else {
  printf("是一個國際化字符。");
}

因為UNICODE轉換會有一點開銷,所以除非需要,否則不要開啟。  

另見

SDLKey  

譯者

石仔<guoshimin57@gmail.com>  

中文版主頁

http://guoshimin.users.sf.net  

中文版最後更新時間

2010年6月15日


 

索引

名稱
結構的定義
結構的內容
描述
另見
譯者
中文版主頁
中文版最後更新時間