12)正式卸遊戲的第一步,可能是i遊戲殼(我也不清楚)
阿新 • • 發佈:2018-01-18
define end onkeydown 第一步 定時 log clas 可能 修改
1)首先是switch消息的種類的展示:
1 switch(uMsg) 2 { 3 4 case WM_CREATE://初始化 5 break; 6 case WM_PAINT://窗口重繪,其實就是貼圖 7 break; 8 case WM_KEYDOWN://鍵盤按鍵按下 9 break; 10 case WM_KEYUP://按鍵擡起 11 break; 12 case WM_LBUTTONDOWN://鼠標左鍵按下 13 break; 14 caseWM_LBUTTONUP://鼠標左鍵擡起 15 break; 16 case WM_MOUSEMOVE://鼠標移動 17 break; 18 case WM_TIMER://定時器 19 break; 20 case WM_CLOSE://點那個×,窗口關閉 21 ::PostQuitMessage(0);//消息推出 22 break; 23 24 25 }
2)然後 就是 編寫基類 就是父類,這個父類裏賣弄有很多的虛函數
我建立了一個CGameCtrl.h的基類頭文件
1#pragma once 2 //上面的代碼為了兼容C++ 3 4 5 6 7 //下面的是兼容C編譯器 8 #ifndef _CGAMECTRL_ 9 #define _CGAMECTRL_ 10 class CGameCtrl 11 { 12 //此處寫的純虛函數,子類必須他們全部重寫 13 public: 14 void virtual OnCreateGame()=0;//這個給WM_CREATE 15 void virtual GameDraw()=0;//這個給WM_PAINT 16 void virtual GameRun()=0;//這個給WM_TIMER17 void virtual OnKeyDown()=0; 18 void virtual OnKeyUp()=0; 19 void virtual OnLbuttonDown()=0; 20 void virtual OnLbuttonUp()=0; 21 void virtual OnMouseMove()=0; 22 23 } 24 25 #endif
但是 要是基類的函數全部是純虛函數,那麽子類就必須實現,所以 我可以將創虛函數做點修改:
1 #pragma once 2 //上面的代碼為了兼容C++ 3 4 5 6 7 //下面的是兼容C編譯器 8 #ifndef _CGAMECTRL_ 9 #define _CGAMECTRL_ 10 class CGameCtrl 11 { 12 13 //這樣改寫 子類中 就沒必要全部重寫這些函數了,因為有的子類用到鍵盤,有的用不到,那麽下面的這種寫法 ,就避免了 不用OnKeyDown()函數的類去改寫這個函數 14 public: 15 void virtual OnCreateGame(){} 16 void virtual GameDraw(){} 17 void virtual GameRun(){} 18 void virtual OnKeyDown(){} 19 void virtual OnKeyUp(){} 20 void virtual OnLbuttonDown(){} 21 void virtual OnLbuttonUp(){} 22 void virtual OnMouseMove(){} 23 24 } 25 26 #endif
12)正式卸遊戲的第一步,可能是i遊戲殼(我也不清楚)