HGE2D引擎按鍵訊息分析 續

2021-05-22 01:33:58 字數 605 閱讀 1730

繼續上一章對其按鍵訊息處理抽絲剝繭。看buildevent()函式裡面

我們先來分析其這段**

再看外面怎麼呼叫的

所有鍵盤按鍵響應,都會響應wm_syskeydown訊息,這裡的input_keydown和input_keyup已經包括了特殊系統按鍵,即tab,ctrl,alt;

除此之外,還有很重要的東西,那就是關於keyz陣列的應用。

這個就是**驅動法的典型應用(引自【**大全】)

思想就是將按鍵的鍵值和滑鼠的左,中, 右三個鍵值看做乙個維度,將按鍵行為作為另乙個維度。

我們可以看到**中就是把鍵值作為陣列的下標,陣列元素初始化為0,

用和0x01,0x10的或操作來記錄down和up的行為。

這樣做的好處便於資料表的維護,不至於新增新的鍵值或者修改舊的鍵值的同時,需要去維護一大堆if else邏輯代替的**。

同時在整個**設計上來說,實現了新的分層,將行為層與邏輯處理層分隔開,符合內聚原則。

我們可以看到外面需要獲取按鍵情況的時候,介面如下:

其中傳進來的key值就是乙個代表是左鍵按下或者右鍵按下的值。

再想想,我們完全可以把這種處理放到我們的程式中,並作為乙個單件使用。

HGE2D引擎按鍵訊息分析

我們自己先動手來模仿hge其鍵盤特殊按鍵訊息響應,其中所涉及到的資料操作含義稍後再介紹。首先建立基於對話方塊cgetkeyboardtestdlg的程式,建立乙個static控制項id為idc static content在對話方塊上面。新增成員 unsigned char kbstate 256 ...

Box 2D物理引擎C Box 2D環境配置

簡單介紹 box2d 是乙個用於遊戲的 2d 剛體 庫.程式設計師可以在他們的遊戲裡使用它,它可以使物體的運動 更加可信,讓世界看起來更具互動性.從遊戲的視角來看,物理引擎就是乙個程式性動畫 procedural animation 的系統,而不是由動畫師去移動你的物體.你可以讓牛頓來做導演.最近在...

Strive 2D遊戲引擎 序

利用業餘時間寫了個基於xna 3.0 的2d網路遊戲引擎,引擎取名為strive 奮鬥。1.操作鍵說明 數字鍵 1 建立pc 2 建立敵人 3 建立樹木 方向鍵 a s d w 射 擊 j 2.開發環境 vs2008 xna studio 3.0 3.xtank解決方案截圖 4.sprite精靈種類...