休闲游戏客户端框架

来源:互联网 发布:学霸到底有多努力知乎 编辑:程序博客网 时间:2024/04/28 03:00

休闲游戏客户端框架
1 CGameApp类主要包含以下成员
2 CGame类 管理CPlayer类,负责游戏的主要逻辑,并提供给绘制部分所要的数据
3 CDrawManager类,初始化绘制引擎,完成绘制工作
4 CEventManager类,游戏中用于监测事件并派发给相应的事件。
5 CMessageHandler类 游戏主逻辑,主要用于管理CGame类,动态改变CPlayer中的数据,达到动态显示,触发CSoundManager类播放各种游戏声音, 调用CComputerSocre类计算分数用与服务器通信

下面简单讲解几个主要的类
 CGame类, 主要执行游戏过程中的逻辑操作,并将相应的逻辑操作交给CPlayer去执行。
CDrawManager类,在游戏中比较的复杂的就是绘制工作。这个类主要管理各个绘制单元。并对每个绘制单元规定一个标识。可能形式为如下:
interface IDrawItem
{
  virtual void Draw() = 0;
  virtual void HitTest(...) = 0; 返回事件ID、位置、光标形式等值
int GetWidth();
int GetHeight();
CRect& GetRect();
}
而CDrawManager::Draw()主要遍历所有绘制单元进行绘制
{
   for (..)
   Draw();
}
而每个绘制单元自己管理自己的绘制位置,这样比较独立,需要其他的数据可以从CGame为取得
CEventManager类。主要是派发各鼠标,键盘消息
可能的形式为如下:
interface IEvent
{
  virtual void Execute(参数包含很多信息,如CGameApp,等) = 0;
}
而CEventManager::OnMouseMove(UINT nFlags, CPoint point)
{
 先做点击测试,根据测试出来的ID找到相应的执行类
}

当然写一个完整的客户端程序不仅仅这些,但只要把主要内容的框架建立起来,做相应的派发,并为之写一些辅助类,完成各主要类的工作,这样结构就清晰多,耦合度也低些,有利于程序的扩展。

原创粉丝点击