单机版游戏的设计与实现 第5页
本设计主要分为定义模块,处理模块和配置管理三大模块,如图4-3所示,定义模块中包括了事件定义模块、INI定义(LightsOff.ini)、和矩阵定义(所有棋盘模板)。处理模块实现事件的具体处理,主要是矩阵定义和INI文件实现响应功能。配置管理模块包括配置文件的读取和保存功能。
这些模块的设计是根据性质来划分的。定义模块主要是cpp文件,在整个模块设计中,充当底层数据结构的角色,在定义文件中,装载了大量的事件定义与相关的参数。处理模块则是具体的事件处理功能模块,每一个动作都是按照定义模块中所指定的动作执行。配置管理模块相对于其它两个模块来说,具有一定的独立性,它有一个单独的转存机制与删除配置文件来完成配置的管理工作。
5 详细设计
5.1事件定义模块的详细设计
雪莲灯系统定义事件模块当中,主要包括了矩阵定义文件和灯盘定义文件,这两部分构成整个桌面模块的支撑。首先,在矩阵定义文件中定义了系统中的各种矩阵,包括每一个矩阵的详细参数。而在灯盘定义中则同样定义了规模和内容。
过滤程序会把相关配置文件中的信息转换成编译器支持的格式,VC++6.0保证了转换过程的正确性。因为VC++6.0是一种标准的,容易分析,易于文护的编译器,所以它成为一种标准的执行格式。
有了VC++6.0的支持,相对也比较容易地写出一些程序来产生Windows桌面响应信息,用于发送报告相关的事件。LightsOff.ini文件是以一定的方式(不是XML格式)存放与更改相关的配置信息,运行的时候,它相关的配置参数也会被转换代码转换成cpp支持格式,但本身不会被修改。
与INI相关的文件,包括事件定义Matrix文件,事件的定义文件,LeverFrame定义ConfigFrame文件和KGameControler定义文件。
5.1.1事件定义文件的布局
在事件定义文件中,文件以[status]开始,并没有明确的标记表明其结束。在[status]标志和末尾之间定义了各种灯盘难度,用于监测游戏中发生与之匹配的事件,这些事件以空行和[levelX]标志进行分隔。
每一个不同的灯盘难度都有一个唯一的Level号,并在“[ ]”中存放,而这个ID号是由雪莲灯配置文件管理员指定的,它的内容是用于对一些棋局难度进行描述。
是否发送消息更改系统配置文件是由系统的配置文件LightsOff和事件的警告级别决定的。当用户点击保存棋局或用户点击时间与范围超出程序指定区域时,系统会向配置文件发送请求,请求其更改当前棋局为默认打开棋局或提示错误信息,而此操作是通过UIObject事件功能完成,事件功能列表如表5-1所示。
表5-1 UIObject事件功能列表
功能 描述
<SetHWnd> 设置窗口句柄.
<GetItemText> 从当前窗口中或者指定ID控件的TEXT值。
<GetItemInt> 从当前窗口中或者指定ID空间的整数值。
<MsgBox> 把MessageBox封装。
<ErrMsg> 错误信息对话框。
<RetryMsg> 重试对话框。
<FinishMsg> 完成对话框.
<ComfirmMsg> 确认对话框。
<WarningMsg> 警告对话框。
<SetItemText> 设置当前窗口中指定控件的值。
<SetWindowCente> 把窗口设为居中。
<SetWindowTitle> 设置窗口标题。
5.1.2 SwitchFrame模块定义的布局
SwitchFrame模块主要是用来响应WM_WM_INITDIALOG, WM_MOUSEMOVE, WM_PAINT和WM_LBUTTONDOWN等消息。还会将窗口重置并居中,把所有的图片一一列在窗口中以及把特定的区域变成无效区以便画出焦点框等操作。SwitchFrame模块定义列表如表5-2所示。
表5-2 SwitchFrame模块定义列表
标志 描述
<ResetWindowSize> 重置窗口的大小并居中。
<SwitchImage> 选择当前坐标的图片。
<OnDefWndProc> 处理默认的消息。
<DlgMoveFocus> 把特定的区域变为无效区, 以便画出焦点框。
5.2事件处理模块的详细设计
事件处理机制主要是通过C++代码来实现,它整合了本设计的主要功能模块。通过程序,实现了系统在运行当中相关的所有事件,并做出相应的处理。
5.2.1事件处理模块的流程设计
图5.2.1 事件处理模块流程图
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页
单机版游戏的设计与实现 第5页下载如图片无法显示或论文不完整,请联系qq752018766