仓酷云
标题: 魔神游戏客户端应用程序结构 [打印本页]
作者: hzming 时间: 2015-1-18 21:18
标题: 魔神游戏客户端应用程序结构
一.游戏状态逻辑
在游戏中分为如下几个阶段:
1.取服务器IP状态
2.登入状态
3.制作都名单
4.选择人物
5.创建人物
6. 主游戏
其中登入状态负责获取用户输入的 帐号和密码登录服务器;
选择人物状态负责获取用户选择的角色进入游戏;
创建人物状态负责提供用户编辑角色形象的界面;
主游戏逻辑状态负责处理游戏逻辑。
二.游戏应用程序框架类CD3DApplication
- class CD3DApplication
- 该类负责游戏逻辑控制,游戏场景更新,在MVC模式中,是属于控制单元。
- 主要数据结构如下
- D3DPRESENT_PARAMETERS m_d3dpp; // 游戏显示参数
- HWND m_hWnd; // 游戏主窗口句柄
- LPDIRECT3D9 m_pD3D; // d3d对象
- LPDIRECT3DDEVICE9 m_pd3dDevice; // d3d 设备
- D3DSURFACE_DESC m_d3dsdBackBuffer; // d3d 设备后缓冲信息
- DWORD m_dwWindowStyle; // windows窗口类型
-
- // Variables for timing
- FLOAT m_fTime; // 游戏当前时间
- FLOAT m_fFPS; // 游戏桢率
-
- // Overridable variables for the app
- TCHAR* m_strWindowTitle; // 窗口标题
- fullscreen<span style="font-family: 宋体; font-size: 10.5pt; text-indent: 15.75pt; background-color: rgb(255, 255, 255); line-height: 1.5;"> </span>
复制代码三.游戏逻辑状态更新流程以及相关CD3DApplication类函数
- 1.INT CD3DApplication::Run()
- a. 在该函数中首先负责处理windows消息
- BOOL bGotMsg;
- MSG msg;
- msg.message = WM_NULL;
- PeekMessage( &msg, NULL, 0U, 0U, PM_NOREMOVE );
- while( WM_QUIT != msg.message )
- {
- bGotMsg = PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE );
- if( bGotMsg )
- {
-
- // if( 0 == TranslateAccelerator( m_hWnd, hAccel, &msg ) )
- {
- TranslateMessage( &msg );
- DispatchMessage( &msg );
- }
- }
- b. 然后调用Render3DEnvironment()函数更新游戏画面。
-
- 2.Render3DEnvironment()
- a. 首先测试d3d设备是否有效
- if( FAILED( hr = m_pd3dDevice->TestCooperativeLevel() ) )
- {
- // If the device was lost, do not render until we get it back
- if( D3DERR_DEVICELOST == hr )
- return S_OK;
- if( D3DERR_DEVICENOTRESET == hr )
- {
-
- if( m_bWindowed )
- {
- D3DAdapterInfo* pAdapterInfo = &m_Adapters[m_dwAdapter];
- m_pD3D->GetAdapterDisplayMode( m_dwAdapter, &pAdapterInfo->d3ddmDesktop );
- m_d3dpp.BackBufferFormat = pAdapterInfo->d3ddmDesktop.Format;
- }
- b. 得到游戏的全局时间
- FLOAT fAppTime = DXUtil_Timer( TIMER_GETAPPTIME );
-
- c. 更新场景
- if( m_bFrameMoving || m_bSingleStep )
- {
- // Store the time for the app
- m_fTime = fAppTime;
- m_fElapsedTime = fElapsedAppTime;
-
- // Frame move the scene
- if( FAILED( hr = FrameMove() ) )
- return hr;
-
- m_bSingleStep = FALSE;
- }
-
-
- d. 渲染场景
- // Render the scene as normal
- if ( !m_bPauseRendering )
- {
- if( FAILED( hr = Render() ) )
- return hr;
- }
-
- // Keep track of the frame count
- static FLOAT fLastTime = 0.0f;
- static DWORD dwFrames = 0L;
- FLOAT fTime = DXUtil_Timer( TIMER_GETABSOLUTETIME );
- ++dwFrames;<span style="font-family: 新宋体; font-size: 9pt; line-height: 1.5; text-indent: 17.25pt; background-color: rgb(255, 255, 255);"> </span>
复制代码其中更新场景需要用到游戏时间参数,通过游戏参数更新游戏逻辑。 并且在该步凑负责游戏状态的逻辑控制。 首先处理纹理更新; 游戏的输入更新;游戏界面模块更新以及游戏的状态更新。
作者: 兰色精灵 时间: 2015-1-21 17:34
魔神争霸好帖必须得顶起
作者: pizazz 时间: 2015-1-24 19:42
魔神争霸学习下
作者: 爱飞 时间: 2015-1-30 13:23
魔神争霸楼主,有不满可以合法发泄,有病也要早治啊……
作者: 飘飘悠悠 时间: 2015-2-4 19:06
魔神争霸占坑编辑ing
作者: x665211x 时间: 2015-2-8 16:31
谢谢分享
作者: 因胸联盟 时间: 2015-2-24 03:11
魔神争霸珍爱生命,果断回帖。
作者: 分手快乐 时间: 2015-3-7 00:07
魔神争霸天书奇谭,建议列为中文专业博士学位答辩翻译必考题目。
作者: 7793123623 时间: 2015-3-9 16:09
学习学习呀
作者: kkk103005 时间: 2015-3-10 01:47
感謝大大提供~
作者: 活着的死人 时间: 2015-3-17 03:47
魔神争霸不错支持下
作者: 飘灵儿 时间: 2015-3-17 22:55
魔神争霸前排顶,很好!
作者: 小女巫 时间: 2015-3-25 04:23
魔神争霸前排顶,很好!
作者: 金色的骷髅 时间: 2015-3-27 00:08
魔神争霸学习下
作者: 不帅 时间: 2015-3-28 23:21
魔神争霸学习下
作者: 蒙在股里 时间: 2015-4-10 21:50
魔神争霸支持楼主,用户楼主,楼主英明呀!!!
作者: admin 时间: 2015-4-13 01:37
魔神争霸鄙视楼下的顶帖没我快,哈哈
作者: 谁可相欹 时间: 2015-4-13 01:40
魔神争霸占坑编辑ing
作者: 海妖 时间: 2015-4-25 02:01
魔神争霸楼猪V5啊
作者: 冷月葬花魂 时间: 2015-4-26 04:10
魔神争霸不错支持下
作者: 深爱那片海 时间: 2015-4-26 13:10
魔神争霸支持楼主,用户楼主,楼主英明呀!!!
作者: 柔情似水 时间: 2015-4-27 16:08
魔神争霸鄙视楼下的顶帖没我快,哈哈
作者: 灵魂腐蚀 时间: 2015-6-29 06:14
魔神争霸楼主,有不满可以合法发泄,有病也要早治啊……
作者: 变相怪杰 时间: 2015-6-29 17:45
魔神争霸天书奇谭,建议列为中文专业博士学位答辩翻译必考题目。
作者: daoapq 时间: 2015-7-6 11:20
支持魔神争霸
作者: 若天明 时间: 2015-7-9 22:07
魔神争霸围观围观沙发在哪里!!!
作者: 黑燕 时间: 2016-7-31 14:15
魔神游戏客户端应用程序结构 [
作者: aa1263394567 时间: 2017-5-19 11:21
学习是一种美好的事
作者: 我也来 时间: 2017-7-14 01:09
111111111111111111111111111111111111111111111111111
作者: xiongcj12 时间: 2017-8-22 19:27
学习了。。。。。。。。。。。。。。。
作者: zhangxuew 时间: 2018-11-7 00:26
不断学习不断提高
作者: lishanxi0225 时间: 2019-1-6 22:24
11111111111111111111111111
作者: dianpula 时间: 2019-11-25 15:45
魔神游戏客户端应用程序结构
作者: 277058849 时间: 2020-8-16 18:30
666666666
作者: 丶听雨 时间: 2021-9-16 15:34
魔神游戏客户端应用程序结构 [修改]
作者: bestevent 时间: 2021-11-3 12:30
thankssssssssssss
欢迎光临 仓酷云 (http://ckuyun.com/) |
Powered by Discuz! X3.2 |