程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> [游戲開發]工廠模式

[游戲開發]工廠模式

編輯:關於C++

游戲編程是我業余的愛好,也可以提高對編程的興趣,每當我有時間的時候就會編寫游戲,基於圖片的問題所以首選小游戲。這是我畢業後第二款小游戲,相比上一款充分的運用了面向對象的技術,讓我享受與不斷做類的完善,特別提出的是使用遞歸技術使得算法更加簡潔確實是個很不錯的技術,比如:游戲中的地圖整行消除判斷以及消除。

目前的設計情況如下:

(有寫沒必要的函數省略了,初次使用UML圖)

此貼主要是想探討類的設計,標題上寫了工廠模式,這裡只是簡單的把UI創建放到另外一個地方罷了,嚴格來說應該不算是什麼工廠,但是主要是代碼

易讀維護性高就可以了.開發環境:VS2005,WIN32、 C++、DX9

如果要增加其他按鈕只要繼承ImageUI,和實現基類的存虛擬函數就可以。基類的事件觸發如下代碼。

PUG_BTN_STAT CImageUI::OnEven(UINT msg, WPARAM wParam, LPARAM lParam)
{
  POINTS xy;
  xy = MAKEPOINTS(lParam);
  POINT xy2;
  xy2.x = xy.x;
  xy2.y = xy.y;

  switch(msg)
  {   
  case WM_MOUSEMOVE:
      {
      if(PtInRect(&_displaySize,xy2))
      {
        OnPass();
        return PASS;
      }
      }
      break;
   case WM_LBUTTONDOWN:
      {
      if(PtInRect(&_displaySize,xy2))
      {
        OnClick();
        return ONCLICK;
      }
      }
      break;
   case WM_LBUTTONUP:
     {
      if(PtInRect(&_displaySize,xy2))
      {
        OnClickOut();
        return ONCLICKOUT;
      }
     }
     break;
  }

  OnPassOut();
  return COMMAND;
}

游戲圖片如下:

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved