当前位置:首页 >> 编程开发 >> Visual C++ >> 内容

[游戏开发]工厂模式

时间:2015/5/19 21:35:49 作者:平凡之路 来源:xuhantao.com 浏览:

游戏编程是我业余的爱好,也可以提高对编程的兴趣,每当我有时间的时候就会编写游戏,基于图片的问题所以首选小游戏。这是我毕业后第二款小游戏,相比上一款充分的运用了面向对象的技术,让我享受与不断做类的完善,特别提出的是使用递归技术使得算法更加简洁确实是个很不错的技术,比如:游戏中的地图整行消除判断以及消除。

目前的设计情况如下:

(有写没必要的函数省略了,初次使用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;
}

游戏图片如下:

本文配套源码

相关文章
  • 没有相关文章
  • 徐汉涛(www.xuhantao.com) © 2024 版权所有 All Rights Reserved.
  • 部分内容来自网络,如有侵权请联系站长尽快处理 站长QQ:965898558(广告及站内业务受理) 网站备案号:蒙ICP备15000590号-1