欢迎来到天天文库
浏览记录
ID:12567739
大小:409.00 KB
页数:21页
时间:2018-07-17
《概要设计-基于windows 平台directx视频加速技术的连连看游戏设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
基于windows平台DirectX视频加速技术的连连看游戏概要设计总页数20正文17附录1生效日期2013.12.421 编制批准21 南昌航空大学东软班概要设计修改履历修改编号日期修改人版本号修改内容1VER0.1.0概要设计21 南昌航空大学东软班概要设计目录1文档概述41.1文档目的和范围41.2术语/缩略语41.3参考文档42模块概述42.1模块功能定义42.2模块结构52.3用例图52.4类图.........................................................................................................................................................62.5模块动作时序.......................................................................................................................................133接口说明143.1数据结构定义143.2函数143.2.1模块间接口函数143.2.2模块内接口函数1721 南昌航空大学东软班概要设计1文档概述1.1文档目的和范围该项目主要完成主要是基于windows平台DirectX视频加速技术的连连看游戏设计与实现1.2术语/缩略语序号术语/缩略语说明1DirectX视频加速器技术1.3参考文档序号文档名作者时间版本1概要设计东软提供2014.12.04VER0.1.02模块概述Windows与directX实现连连看游戏,游戏分为3个等级普通,挑战,极限。2.1模块功能定义序号功能点功能点详细内容1主界面进入游戏的主界面,通过该界面进入不同等级的游戏2普通等级游戏进入普通等级进行游戏,游戏难易程度相对较低3挑战等级游戏进入挑战等级进行游戏,难易程度相对普通等级要难4极限等级游戏进入极限等级进行游戏,难易程度相对挑战等级难21 南昌航空大学东软班概要设计1.1模块结构程序模块图如图所示:图2-2模块结构图程序有两个大模块组成,游戏模块和退出游戏模块。其中游戏模块一共分为3个小模块。普通模式游戏模块,即游戏难易程度最低;挑战模式游戏模块,即游戏难度相对难一些;极限模式游戏模块,即游戏难度比较复杂,完成游戏的时间相对要长一些。1.2用例图用例主要有:用户开始游戏,用户进行配对图片。图2-3用例图21 南昌航空大学东软班概要设计1.1类图类GameWord:图2-4-121 南昌航空大学东软班概要设计该类是程序的主类,分别与SceneSystem、UiSystem、RenderSystem和InputSystem类相关联,主要时创建主程序窗口,消息循环,初始化SceneSystem、UiSystem、RenderSystem和InputSystem,更新窗口和渲染呢窗口。类RendSystem:图2-4-2该类与GameWord相关联。该类用于初始化DirectX和创建精灵对象。类InputSystem:图2-4-3该类分别与UiSystem、SceneSystem和GameWord类相关联。主要用于设置鼠标设备,21 南昌航空大学东软班概要设计获取一个对象通过该对象判断鼠标是否点击左键或者右键同时获取当前光标坐标。类UiSystem:图2-4-4该类与InputSystem、GameWord相关联,与MBUtton容器组合关系。主要是对游戏主界面的背景图片和按钮加载纹理,初始化精灵,设置原图片和目标图片坐标,以及设置按钮在窗口上的矩形框。最后对主界面进行更新和渲染。类SceneSystem:图2-4-5该类继承了Scene类,并且分别与类InputSystem类和Gameword类相关联。主要是对游戏界面背景和游戏方块加载纹理,初始化精灵,设置原图片和目标图片坐标,以及设置游戏方块在窗口上的矩形框。设置好后,程序会一直在消息循环中,Update函数会不停的对界面更新通过CheckLink函数检测两个方块是否可以消除,然后在通过Render函数对新数据的游戏界面进行渲染。21 南昌航空大学东软班概要设计类Check:图2-4-6该类是Scene类的子类,同时也被SceneSystem类继承。主要是检测从SceneSystem类获取的两个点,总共判断3中情况,分别用DirectLink函数判断同行同列的情况,用oneCenterLink函数判断有一个折点的情况,用twoCenterLink函数判断有两个折点的情况。类Scene:图2-4-7该类与Button类相关联,同时也被Check类继承。主要成员函数是GetScreenstart,这个函数是为了获取游戏方块表的开始坐标。该类还有重要的成员变量,如m_sceneButton、m_texture、m_gameBack,分别是存储游戏界面背景和游戏方块的纹理对象和精灵对象。21 南昌航空大学东软班概要设计类Sprite:图2-4-8该类是Button类的父类。该类的主要功能是通过获取的纹理对象对纹理过后的图片进行渲染显示到窗口上。类Matrix:图2-4-9该类与Sprite同时Button类的父类,Button类同时继承了Sprite和Matrix类。该类的主要功能是通过函数SetRect设置矩形框架的坐标然后可以同过函数GetLeftPoint获取左上角的坐标,通过函数GetRect获取Rect结构体的对象。21 南昌航空大学东软班概要设计类Button:图2-4-10Button类同时继承了Sprite和Matrix类,并且与类Scene相关联。由于该类继承了Sprite和Matrix所以具有着两个类的功能,该类自己实现的功能是设置每个方块的Flag,利用TestButton判断光标是否在相应的方块上,利用Animation实现极限模式下动态游戏方块。类Texture:图2-4-11该类与类Sprite相关联,主要用于加载纹理,通过调用API函数D3DXCreateTextureFromFileEx将纹理对象加载到内存。21 南昌航空大学东软班概要设计类名模块类型概要说明Sprite类精灵初始化GameWord类游戏框架类UiSystem类游戏主窗口画面设置SceneSystem类玩游戏的窗口画面设置RenderSystem类DirectX初始化及相关设置resource接口初始化LCDInputSystem类鼠标操作相关设置Texture类游戏画面纹理设置Matrix类计算方块ID大小类Check类方块消除判断算法类Scene类将可以消除的方块清除21 南昌航空大学东软班概要设计2.5模块动作时序图2-4动作时序图首先从GameWord类开始先创建m_RenderSystem对象同时初始化了DirectX3D,接着创建设备对象m_InputSystem对象同时设置了鼠标设备数据,再是创建了m_UiSystem对象同时对主界面图片加载了纹理和创建了精灵对象。然后是在GameWord类内进入消息循环Run(),在循环内先进入GameUpdate函数对主界面进行更新,从该函数进入UiSystem类的Update函数实现更新。更新结束后从消息循环内进入GameRender函数进行主界面渲染,通过UiSystem类的Render进入Sprite类的Render完成渲染。主界面21 南昌航空大学东软班概要设计渲染结束后进入游戏界面,在GameWord类内进入消息循环Run(),在循环内先进入GameUpdate函数对游戏界面进行更新,从该函数进入SceneSystem类的Update函数实现更新,同时对游戏数据进行一些操作,如检测函数对方块是否可以消除进行检测。更新结束后从消息循环内进入GameRender函数进行主界面渲染,通过SceneSystem类的Render进入Sprite类的Render完成渲染,同时完成划线功能。1接口说明1.1数据结构定义#defineGAME_SCREENWIDTH800#defineGAME_SCREENHEIGHT600窗口宽度和高度#defineDeleteObj(p){if(p!=NULL)deletep;p=NULL;}#defineReleaseCOM(p){if(p!=NULL)p->Release();p=NULL;}释放空间#defineFIRST1#defineSECOND2#defineTHREE3#defineEXIT4主界面四个按钮编号1.2函数1.2.1模块间接口函数1.2.1.1Gameword类接口函数1.2.1.1.1InitializeResource函数名InitializeResource文件名GameWord.cpp功能概要RenderSystem、InputSystem、UiSystem初始化21 南昌航空大学东软班概要设计记述形式VOIDInitializeResource(VOID)参数类型变量名I/O说明void---返回值类型Void说明值详细说明RenderSystem、InputSystem、UiSystem初始化使用注意事项无1.1.1.1.1GameUpdate函数名GameUpdate文件名GameWord.cpp功能概要更新窗口记述形式BOOLGameUpdate(VOID)参数类型变量名I/O说明void---返回值类型BOOL说明值True正常结束false异常结束详细说明当进入不同等级游戏的时候,需要不同的游戏画面,用该函数更新窗口画面使用注意事项21 南昌航空大学东软班概要设计1.1.1.1UiSystem类接口函数1.1.1.1.1InitResource函数名InitResource文件名ManagerSystem.cpp功能概要设置主界面和按钮记述形式BOOLInitResource(RenderSystem*renderSystem)参数类型变量名I/O说明RenderSystemrenderSystem-DirectX对象返回值类型BOOl说明值True正常结束False异常结束详细说明设置主界面和按钮使用注意事项1.1.1.2SceneSystem类接口函数1.1.1.2.1InitResource函数名InitResource文件名ManagerSystem.cpp功能概要初始化连连看的表格记述形式BOOLInitResource(RenderSystem*renderSystem,std::stringfileBackName,std::stringmainName,UINTstep)参数21 南昌航空大学东软班概要设计类型变量名I/O说明RenderSystemrenderSystem-DirectX对象stringfileBackName背景图片名stringmainName连连看图片文件名UINTstep无符号整型变量返回值类型BOOL说明值True正常结束False异常结束详细说明初始化游戏界面使用注意事项无1.1.1模块内接口函数1.1.1.1GameWord类接口函数1.1.1.1.1MsgProc函数名MsgProc文件名GameWord.cpp功能概要窗口过程函数记述形式LRESULTCALLBACKMsgProc(HWNDhWnd,UINTmsg,WPARAMwParam,LPARAMlParam)参数类型变量名I/O说明HWNDhWnd窗口句柄UINTMsg消息21 南昌航空大学东软班概要设计返回值类型说明值详细说明窗口过程函数使用注意事项1.1.1.1RenderSystem类接口函数1.1.1.1.1Direct3DCreate9函数名Direct3DCreate9文件名RenderSystem.cpp功能概要获取IDirect3D指针对象记述形式Direct3D9*WINAPIDirect3DCreate9(UINTSDKVersion)参数类型变量名I/O说明UINTSDKVersion固定的返回值类型Direct3D9说明值正常结束异常结束详细说明获取IDirect3D指针对象使用注意事项21 南昌航空大学东软班概要设计1.1.1.1.1Clear函数名Clear文件名RenderSystem.cpp功能概要清除窗口记述形式Clear(0,NULL,D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,D3DCOLOR_XRGB(r,g,b),1,0)参数类型变量名I/O说明返回值类型说明值正常结束异常结束详细说明使用注意事项无1.1.1.1.2CreateDevice函数名CreateDevice文件名RenderSystem.cpp功能概要获取DIRECT3DDEVICE9指针记述形式HRESULTCreateDevice(UINTAdapter,D3DDEVTYPEDeviceType,HWNDhFocusWindow,DWORDBehaviorFlags,D3DPRESENT_PARAMETERS*pPresentationParameters,IDirect3DDevice9**ppReturnedDeviceInterface);参数类型变量名I/O说明21 南昌航空大学东软班概要设计UINTAdapter序数所指示的显示器适配器D3DDEVTYPEDeviceType表示预设类型的驱动器类型HWNDhFocusWindow窗口句柄DWORDBehaviorFlags硬件顶点处理功能D3DPRESENT_PARAMETERSpPresentationParametersDPRESENT_PARAMETERS类型的变量IDirect3DDevice9**ppReturnedDeviceInterfaceDIRECT3DDEVICE9类型的指针用来返回创建的设备返回值类型HRESULT说明值D3D_OK正常结束异常结束详细说明获取DIRECT3DDEVICE9指针使用注意事项21
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处