网站首页 精选百科 > 正文
大家好,小耶来为大家解答以上的问题。跑跑卡丁车窗口模式怎么关,跑跑卡丁车窗口模式这个很多人还不知道,现在让我们一起来看看吧!
1、要修改文件是一个游戏程序的DLL,这个游戏的方式有点让人想起来,那个《剑侠情缘》也是这样的风格,还有《大话西游》也是这样的风格,什么风格呢?很简单的,就是主程序在DLL中,而EXE只是负责加载而已! 觉得发这样的贴有点没水平了,不过,通常这样的最实用吧:)! 简要说明一下: 游戏主要加速有两类:一是OpenGL,二是DirectX 而现在不知道怎么滴国产游戏都是后着,我们熟悉一下后者: /----------------------------------------------------------------------------------------- 我们看到3D类游戏都要用到的一部分初始化,而熟悉这类编程的都说很简单的东西哦! HRESULT CPNDX::InitD3D(HWND hWd) { hWnd=hWd; // 创建D3D对象 if( NULL == ( g_pD3D = Direct3DCreate8( D3D_SDK_VERSION ) ) ) return E_FAIL; // 获取当前的显示模式 D3DDISPLAYMODE d3ddm; if( FAILED( g_pD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm ) ) ) return E_FAIL; D3DPRESENT_PARAMETERS d3dpp; ZeroMemory( &d3dpp, sizeof(d3dpp) ); d3dpp.Windowed = TRUE; // 窗口模式 d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; // 设置交换模式 d3dpp.BackBufferWidth = d3ddm.Width; d3dpp.BackBufferHeight = d3ddm.Height; d3dpp.BackBufferFormat = d3ddm.Format; // 设置背景缓冲区格式为当前左面格式 d3dpp.EnableAutoDepthStencil = TRUE; // 打开深度缓冲zbuffer d3dpp.AutoDepthStencilFormat = D3DFMT_D16; // 深度缓冲格式 // 创建D3D设备 // 第一个参数:使用默认的显卡适配器 // 第二个参数:请求使用硬件抽象层(HAL) // 第三个参数:窗口句柄 // 第四个参数:使用软件处理顶点 // 第五个参数:创建的参数 // 第六个参数:创建的D3D设备指针 if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pd3dDevice ) ) ) { return E_FAIL; } // 关闭culling,让我们能看到3角型的正反面 g_pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE ); // 打开ZBUFFER g_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE ); // Turn off D3D lighting g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE ); return S_OK; } /--------------------------------------------------------------------------------------------------- 我们注意的地方是:GetAdapterDisplayMode这个函数全屏幕一般不需要,一般都是枚举 而窗口化是必须要的,如果不要这个函数也可以,那就必须自己初始化D3DDISPLAYMODE结构才可以。
2、 比如: //前面用其他函数给它初始化了宽和高,那么后面还要初始化屏幕格式和刷新频率。
3、才能窗口化! d3ddm.Format =D3DFMT_R5G6B5; d3ddm.RefreshRate=0x3C; 把前面的D3DPRESENT_PARAMETERS d3dpp这个结构赋值修改如下: d3dpp.Windowed = FALSE; d3dpp.BackBufferCount = 1; d3dpp.BackBufferFormat = d3ddm.Format; d3dpp.BackBufferWidth = d3ddm.Width; d3dpp.BackBufferHeight = d3ddm.Height; d3dpp.hDeviceWindow = hWnd; d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC; //这个也是必须的,不然屏幕会闪烁。
4、 d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT; d3dpp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_ONE; 简要说完了,大家还是不太清楚就查查资料吧!没说太难,就通俗点说一下! /---------------------------------------------------------------------------------------------------- 下面的就简单了: 我们来看一下,把一个程序反汇编会是什么样子: //很容易就发现这个了: 00406FD0 |. 68 DC000000 push 0DC 00406FD5 |. E8 987F0300 call
5、切换到窗口后,如果想换全屏,就在第一次按F11后不要进行任何操作,再按F11,否则就会提示切换错误,退出游戏。
6、进入游戏后按F11就变成窗口了如果想全屏就再按F11在窗口变成全屏的时候可能会出现窗口错误导致退出游戏!。
本文到此分享完毕,希望对大家有所帮助。
版权说明: 本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
猜你喜欢:
- 2022-06-13 上千研究人员离美 回应 具体说了什么
- 2022-05-10 2019成都车展什么时候举行2019成都车展都有什么新车
- 2022-04-26 权志龙恋情什么情况权志龙恋情这是怎么回事
- 2022-08-01 peva材料有什么危害(peva)
- 2022-08-08 狂的组词和拼音(狂的笔顺)
- 2022-04-27 外长称行动结束 什么行动事情这是怎么回事
- 2022-08-14 北京哪里买奢侈品便宜(北京哪里买吉他)
- 2022-05-14 诺贝尔经济学奖得主是功夫迷 他喜爱李小龙的电影
最新文章:
- 2022-08-22 粽子冷水煮还是热水煮(粽子是冷水煮好还是热水煮)
- 2022-08-22 Ground Zero 在线播放(ground zero)
- 2022-08-22 autocad2010序列号和产品密钥
- 2022-08-22 骐骥一跃不能十步的意思(骐骥一跃不能十步的意思是什么)
- 2022-08-22 板栗和牛肉能一起吃吗(板栗和牛肉可以一起吃吗)
- 2022-08-22 成都开幕式(成都开业庆典公司)
- 2022-08-22 怎样坐飞机(教你如何坐飞机)
- 热点推荐
- 热评文章