详细设计基于windows 平台directx视频加速技术的连连看游戏设计与实现大学论文.docx
《详细设计基于windows 平台directx视频加速技术的连连看游戏设计与实现大学论文.docx》由会员分享,可在线阅读,更多相关《详细设计基于windows 平台directx视频加速技术的连连看游戏设计与实现大学论文.docx(36页珍藏版)》请在冰豆网上搜索。
![详细设计基于windows 平台directx视频加速技术的连连看游戏设计与实现大学论文.docx](https://file1.bdocx.com/fileroot1/2023-1/29/400fe3f6-70fb-4bc1-ad0d-3d6eee42492a/400fe3f6-70fb-4bc1-ad0d-3d6eee42492a1.gif)
详细设计基于windows平台directx视频加速技术的连连看游戏设计与实现大学论文
基于windows平台DirectX视频加速技术的连连看游戏
详细设计
总页数
37
正文
34
附录
1
生效日期
2014-3-11
编制
批准
修改履历
修改编号
日期
修改人
版本号
修改内容
1
0.1.0
初始做成
2.2.1GameWord类成员函数..............................................................................................5
2.2.2InputSystem类成员函数..........................................................................................10
2.2.3UiSystem类成员函数..............................................................................................12
2.2.4SceneSystem类成员函数.........................................................................................18
2.2.5RenderSystem类成员函数.......................................................................................29
2.2.6Texture类成员函数..................................................................................................30
2.2.7Sprite类成员函数.....................................................................................................32
2.2.8Check类成员函数....................................................................................................33
1文档概述
1.1文档目的和范围
此文档是对基于windows平台DirectX视频加速技术的连连看游戏详细设计描述,主要是描述了本程序接口函数和内部接口函数以及内部函数的定义、流程图和构成图以及测试项目的记述。
1.2术语/缩略语
序号
术语/缩略语
说明
1
DirectX
视频加速器技术
1.3参考文档
2处理
2.1模块数据结构定义
#defineGAME_SCREENWIDTH800窗口宽
#defineGAME_SCREENHEIGHT600窗口高
#defineDeleteObj(p){if(p!
=NULL)deletep;p=NULL;}
#defineReleaseCOM(p){if(p!
=NULL)p->Release();p=NULL;}释放空间
#defineFIRST1表示主界面第一个按钮id
#defineSECOND2表示主界面第二个按钮id
#defineTHREE3表示主界面第三个按钮id
#defineEXIT4表示主界面第四个按钮id
#defineBLANK_GRID0
2.2模块功能实现
2.2.1GameWord类成员函数
2.2.1.1MsgProc
函数名
MsgProc()
文件名
GameWord.cpp
功能概要
窗口过程函数
记述形式
LRESULTCALLBACKMsgProc(HWNDhWnd,UINTmsg,WPARAMwParam,LPARAMlParam)
参数HWNDhWnd,UINTmsg,WPARAMwParam,LPARAMlParam
类型
变量名
I/O
说明
HWND
hWnd
-
窗口句柄
UINT
WPARAM
_
消息ID
返回值
类型
LRESULT
说明
值
详细说明
1鼠标按关闭窗口键,窗口将关闭。
2按ESC键窗口关闭
使用注意事项
【函数处理流程】
流程图1
2.2.1.2Run
函数名
Run()
文件名
GameWord.cpp
功能概要
消息循环
记述形式
VOIDGameWord:
:
Run(VOID)
参数VOID
类型
变量名
I/O
说明
Void
-
-
-
返回值
类型
VOID
说明
值
详细说明
消息循环,调用一个函数在空闲处理期间显示场景
使用注意事项
【函数处理流程】
流程图2
2.2.1.3GameUpdate
函数名
GameUpdate()
文件名
GameWord.cpp
功能概要
更新窗口
记述形式
BOOLGameWord:
:
GameUpdate(VOID)
参数
类型
变量名
I/O
说明
Void
-
-
-
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
根据对窗口的操作对窗口进行更新
使用注意事项
【函数处理流程】
流程图3
2.2.1.4GameRender
函数名
GameRender()
文件名
GameWord.cpp
功能概要
Direct渲染和显示场景
记述形式
BOOLGameWord:
:
GameRender(VOID)
参数char*err
类型
变量名
I/O
说明
Void
-
-
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
该函数调用所有渲染函数和显示函数
使用注意事项
【函数处理流程】
流程图4
2.2.2InputSystem类成员函数
2.2.2.1Initalize
函数名
Initialize()
文件名
InputSystem.cpp
功能概要
初始化鼠标设备
记述形式
BOOLInputSystem:
:
Initialize()
参数
类型
变量名
I/O
说明
Void
-
-
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
该函数用于创建一个DirectInput8对象,创建一个DirectInput设备,设置数据格式,设置协作级
使用注意事项
【函数处理流程】
流程图5
2.2.3UiSystem类成员函数
2.2.3.1InitResource
函数名
InitResource()
文件名
ManagerSystem.cpp
功能概要
设置游戏主界面的数据
记述形式
BOOLUiSystem:
:
InitResource(RenderSystem*renderSystem)
参数RenderSystem*renderSystem
类型
变量名
I/O
说明
RenderSystem
renderSystem
-
DirectX类的对象
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
创建纹理和精灵,设置原图片和目标图片的坐标,对按钮设置矩形框坐标
使用注意事项
【函数处理流程】
流程图6
2.2.3.2Update
函数名
Update()
文件名
ManagerSystem.cpp
功能概要
当点击按钮时记录按钮编号m_id
记述形式
BOOLUiSystem:
:
Update(VOID)
参数
类型
变量名
I/O
说明
-
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
当点击按钮时记录按钮编号m_id
使用注意事项
【函数处理流程】
流程图7
2.2.3.3Render
函数名
Render()
文件名
ManagerSystem.cpp
功能概要
显示游戏主界面和一系列操作后画面
记述形式
BOOLUiSystem:
:
Render(VOID)
参数
类型
变量名
I/O
说明
-
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
该函数主要调用精灵显示函数来显示界面,当光标停留在按钮上时将调用函数改变按钮图片和光标形状
使用注意事项
【函数处理流程】
流程图8
2.2.4SceneSystem类成员函数
2.2.4.1InitResource
函数名
InitResource()
文件名
ManagerSystem.cpp
功能概要
对游戏界面的数据设置
记述形式
BOOLSceneSystem:
:
InitResource(RenderSystem*renderSystem,std:
:
stringfileBackName,
std:
:
stringmainName,UINTstep)
参数RenderSystem*renderSystem,std:
:
stringfileBackName,std:
:
stringmainName,UINTstep
类型
变量名
I/O
说明
RenderSystem*
renderSystem
-
DirectX类的对象
std:
:
string
fileBackName
-
背景图片的路径
std:
:
string
mainName
-
游戏方块图片路径
UINT
step
-
每个游戏方块的变化个数
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
该函数主要调用设置原图片位置和目标图片位置,还有目标位置的矩形框坐标。
使用注意事项
【函数处理流程】
流程图9
2.2.4.2Random
函数名
Random()
文件名
ManagerSystem.cpp
功能概要
设置游戏方块随机分布在游戏界面上的数据
记述形式
std:
:
vectorSceneSystem:
:
Random(UINTlength)
参数UINTlength
类型
变量名
I/O
说明
UINT
Lengtn
-
游戏方块的总数
返回值
类型
std:
:
vector
说明
值
tempV
存储游戏方块在原图片的位置
详细说明
调用该函数将会得到游戏界面中游戏方块的图片在原图片中的位置的一个容器
使用注意事项
【函数处理流程】
流程图10
2.2.4.3Update
函数名
Update()
文件名
ManagerSystem.cpp
功能概要
游戏进行时的一些数据判断
记述形式
BOOLSceneSystem:
:
Update(VOID)
参数
类型
变量名
I/O
说明
-
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
该函数主要是在游戏进行时对方块的选取是否正确
使用注意事项
【函数处理流程】
流程图11
2.2.4.4Render
函数名
Render()
文件名
ManagerSystem.cpp
功能概要
游戏场景的显示
记述形式
BOOLSceneSystem:
:
Render(VOID)
参数UINTlength
类型
变量名
I/O
说明
-
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
调用该函数主要是对游戏场景在不同情况下的显示
使用注意事项
【函数处理流程】
流程图12
2.2.4.5GetArrayPos
函数名
GetArrayPos()
文件名
ManagerSystem.cpp
功能概要
获取玩家选定的方块ID
记述形式
UINTSceneSystem:
:
GetArrayPos(intx,inty)
参数intx,inty
类型
变量名
I/O
说明
int
x
-
点击方块的x坐标
int
y
点击方块的y坐标
返回值
类型
UINT
说明
值
val
获取到方块的ID
m_num
没有获取到新的ID返回原先的
详细说明
调用该函数主要是获取玩家正确点击方块的ID如果玩家点击的位置错误将原来的ID返回
使用注意事项
【函数处理流程】
流程图13
2.2.4.6CheckLink
函数名
CheckLink()
文件名
ManagerSystem.cpp
功能概要
判断选取的两个方块是否可以消除
记述形式
BOOLSceneSystem:
:
CheckLink(UINTfirst,UINTsecond)
参数UINTfirst,UINTsecond
类型
变量名
I/O
说明
UINT
first
-
选取的第一个方块
UINT
second
选取的第二个方块
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
调用该函数主要是通过调用函数来判断选取的两个方块是否可以被消除
使用注意事项
【函数处理流程】
流程图14
2.2.5RenderSystem类成员函数
2.2.5.1InitializeDevice
函数名
InitializeDevice()
文件名
RenderSystem.cpp
功能概要
Direct3D初始化
记述形式
BOOLRenderSystem:
:
InitializeDevice(VOID)
参数
类型
变量名
I/O
说明
-
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
Direct3d初始化
使用注意事项
【函数处理流程】
流程图15
2.2.6Texture类成员函数
2.2.6.1LoadTexture
函数名
LoadTexture()
文件名
ResourceFactory.cpp
功能概要
加载纹理
记述形式
BOOLTexture:
:
LoadTexture(std:
:
stringfileName)
参数std:
:
stringfileName
类型
变量名
I/O
说明
std:
:
string
fileName
-
图片路径
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
调用该函数加载纹理
使用注意事项
【函数处理流程】
流程图16
2.2.7Sprite类成员函数
2.2.7.1Render
函数名
Render()
文件名
ResourceFactory.cpp
功能概要
显示精灵
记述形式
BOOLSprite:
:
Render(TextureInfoinfo,DWORDcolor)
参数TextureInfoinfo,DWORDcolor
类型
变量名
I/O
说明
TextureInfo
info
-
原图片和目标的位置
DWORD
color
颜色
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
调用该函数将加载完纹理和设置好位置的图片显示到屏幕上
使用注意事项
【函数处理流程】
流程图17
2.2.8Check类成员函数
2.2.8.1DirecLink
函数名
DirectLink()
文件名
Scene.cpp
功能概要
连连看算法,在同一行或在同一列的情况
记述形式
BOOLCheck:
:
DirectLink(UINTfirst,UINTsecond)
参数UINTfirst,UINTsecond
类型
变量名
I/O
说明
UINT
first
-
选取的第一个方块ID
UINT
second
选取的第二个方块ID
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
调用该函数判断两个方块是否属于在同一行或在同一列的情况
使用注意事项
【函数处理流程】
流程图18
2.2.8.2oneCenterLink
函数名
oneCenterLink()
文件名
Scene.cpp
功能概要
连连看算法
记述形式
BOOLCheck:
:
oneCenterLink(UINTfirst,UINTsecond)
参数UINTfirst,UINTsecond
类型
变量名
I/O
说明
UINT
first
-
选取的第一个方块ID
UINT
second
选取的第二个方块ID
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
判断选中的两个方块在不同行不同列时是否可以连接
使用注意事项
该算法不考虑连接路径经过边框
【函数处理流程】
流程图19
2.2.8.3twoCenterLink
函数名
twoCenterLink()
文件名
Scene.cpp
功能概要
连连看算法
记述形式
BOOLCheck:
:
twoCenterLink(UINTfirst,UINTsecond)
参数UINTfirst,UINTsecond
类型
变量名
I/O
说明
UINT
first
-
选取的第一个方块ID
UINT
second
选取的第二个方块ID
返回值
类型
BOOL
说明
值
TRUE
成功返回TURE
FALSE
反之返回FALSE
详细说明
该函数主要判断连接路径经过边框时是否可以连接
使用注意事项
【函数处理流程】
流程图20