文心公司

文心公司

导航

休闲游戏客户端框架

游戏客户端 CGameApp类主要包含以下成员
 CGame类 管理CPlayer类,负责游戏的主要逻辑,并提供 给绘制部分所要的数据
 CDrawManager类,初始化绘制引擎,完成绘制工作
 CEventManager类,游戏中用于监测事件并派发给相应的事件。
 CMessageHandler类 游戏主逻辑,主要用于管理CGame类, 动态改变CPlayer中的数据,达到动态显示,触发CSoundManager类播放各种游戏声音, 调用CComputerSocre类计算分数用与服务器通信
下面简单讲解几个主要的类
 CGame类, 主要执行游戏过程中的逻辑操作,并将相应的逻辑操作交给CPlayer去执行。
CDrawManager类,在游戏中比较的复杂的就是绘制工作。这个类主要管理各个绘制单元。并对每个绘制单元救规定一个标识。可能形式为如下:
   interface IDrawItem
{
  virtual void Draw() = 0;
  virtual void HitTest(...) = 0; 返回事件ID、位置、光标形式等值
}
而CDrawManager::Draw()主要遍历所有绘制单元进行绘制
{
   for (..)
   Draw();
}
而每个绘制单元自己管理自己的绘制位置,这样比较独立,需要其他的数据可以从CGame为取得
CEventManager类。主要是派发各鼠标,键盘消息
可能的形式为如下:
interface IEvent
{
  virtual void Execute(参数包含很多信息,如CGameApp,等) = 0;
}
而CEventManager::OnMouseMove(UINT nFlags, CPoint point)
{
 先做点击测试,根据测试出来的ID找到相应的执行类
}

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

posted on 2006-10-31 17:02  文心  阅读(641)  评论(0编辑  收藏  举报