1. 程式人生 > >12)正式卸遊戲的第一步,可能是i遊戲殼(我也不清楚)

12)正式卸遊戲的第一步,可能是i遊戲殼(我也不清楚)

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     case
WM_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_TIMER
17 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遊戲殼(我也不清楚)