資源簡(jiǎn)介
大學(xué)時(shí)期(2010年)的學(xué)習(xí)作品。基于windows + DirectX3D開發(fā)的簡(jiǎn)單游戲框架。

代碼片段和文件信息
//D3DApp.cpp
#include?“../include/Commen.h“
#include?“D3DApp.h“
#include?“Game.h“
CD3DApp?g_gameApp;//游戲類應(yīng)用程序?qū)ο?br/>///////////////////主函數(shù)///////////////////////////////////
int?WINAPI?WinMain(?HINSTANCE?hInstanceHINSTANCELPSTRint)
{
if(g_gameApp.init(hInstanceL“D3DApp“800600))//初始化游戲類
{
g_gameApp.mainLoop();//游戲循環(huán)
}
return?0;
}
///////////////////class?CD3DApp?start/////////////////////////
CD3DApp::CD3DApp()
{
m_pGame=NULL;
m_hWnd=NULL;
m_hInstance=NULL;
m_pd3dDevice=NULL;
m_bFullScreen=false;
m_width=640;
m_height=480;
m_bGameStart=false;
wcscpy_s(m_szCaptionL“無(wú)標(biāo)題“);
}
CD3DApp::~CD3DApp()
{
m_pGame->destroy();
SafeDelete(m_pGame);
SafeRelease(m_pd3dDevice);
UnregisterClass(L“GameEngin“m_hInstance);
}
/*?游戲類初始化
**?hInstance:?應(yīng)用程序?qū)嵗龑?duì)象
**?caption:?窗口標(biāo)題
**?width:?窗口寬度
**?height:?窗口高度
**?bFullScreen:?是否全屏
*/
bool?CD3DApp::init(HINSTANCE?hInstance
???WCHAR?*caption
???int?width
???int?height
???bool?bFullScreen)
{
m_pGame=new?CGame();
m_hInstance=hInstance;
m_width=width;
m_height=height;
m_bFullScreen=bFullScreen;
if(caption?!=?NULL)
{
wcscpy_s(m_szCaptioncaption);
}
registerClass();//注冊(cè)窗口類
if(!createWindow())//創(chuàng)建窗口
{
return?false;
}
if(!initD3D())//初始化Direct3D對(duì)象及設(shè)備
{
return?false;
}
if(!m_pGame->initGame(m_pd3dDevicem_hWndm_hInstance))//初始化其他
{
return?false;
}
if?(!initGUI())
{
return?false;
}
ShowWindow(m_hWndSW_SHOW);
UpdateWindow(m_hWnd);
return?true;
}
//初始化Direct3D對(duì)象及設(shè)備對(duì)象
bool?CD3DApp::initD3D()
{
IDirect3D9?*pD3D=Direct3DCreate9(D3D_SDK_VERSION);
if(NULL?==?pD3D)
{
return?false;
}
//獲得顯卡當(dāng)前顯示模式
D3DDISPLAYMODE?d3dmm;
pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT&d3dmm);
//設(shè)置顯示參數(shù)
D3DPRESENT_PARAMETERS?d3dpp;
memset(&d3dpp0sizeof(d3dpp));
d3dpp.Windowed=!m_bFullScreen;
d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat=d3dmm.Format;
d3dpp.EnableAutoDepthStencil=TRUE;
d3dpp.AutoDepthStencilFormat=D3DFMT_D16;
if(m_bFullScreen)
{//全屏顯示
d3dpp.BackBufferHeight=d3dmm.Height;
d3dpp.BackBufferWidth=d3dmm.Width;
d3dpp.FullScreen_RefreshRateInHz=d3dmm.RefreshRate;
d3dpp.PresentationInterval=D3DPRESENT_INTERVAL_ONE;
}
//創(chuàng)建Direct3D設(shè)備對(duì)象
if(FAILED(pD3D->CreateDevice(
D3DADAPTER_DEFAULT
D3DDEVTYPE_HAL
m_hWnd
D3DCREATE_SOFTWARE_VERTEXPROCESSING
&d3dpp
&m_pd3dDevice)))
{
SafeRelease(pD3D);
return?false;
}
SafeRelease(pD3D);
m_pd3dDevice->SetRenderState(D3DRS_CULLMODED3DCULL_NONE);
m_pd3dDevice->SetRenderState(D3DRS_ZENABLETRUE);
//設(shè)置部分環(huán)境光
m_pd3dDevice->SetRenderState(D3DRS_AMBIENTD3DCOLOR_XRGB(100100100));
return?true;
}
//注冊(cè)窗口類
void?CD3DApp::registerClass()
{
WNDCLASSEX?wc;
memset(&wc0sizeof(wc));
wc.cbSize=sizeof(wc);
wc.lpfnWndProc=(WNDPROC)windowProc;
wc.hInstance=m_hInstance;
wc.lpszClassName=L“GameEngin“;
wc.hbrBackground=(HBRUSH)GetStockobject(BLACK
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????59048??2011-08-02?22:40??D3DEngine\3DPushBox\3DPushBox.aps
?????文件???????1690??2011-08-02?22:40??D3DEngine\3DPushBox\3DPushBox.rc
?????文件???????2573??2011-09-13?20:05??D3DEngine\3DPushBox\3DPushBox.sln
????..A..H.?????31232??2011-09-13?20:37??D3DEngine\3DPushBox\3DPushBox.suo
?????文件???????4718??2011-09-13?20:00??D3DEngine\3DPushBox\3DPushBox.vcproj
?????文件???????1427??2011-08-09?13:24??D3DEngine\3DPushBox\3DPushBox.vcproj.S5I0CGI2FZ4EPQA.Administrator.user
?????文件???????1411??2011-09-13?20:37??D3DEngine\3DPushBox\3DPushBox.vcproj.ZHOUBAO.Administrator.user
?????文件????1408512??2011-08-20?16:42??D3DEngine\3DPushBox\3D推箱子.exe
?????文件???????7671??2011-08-02?21:19??D3DEngine\3DPushBox\D3DApp.cpp
?????文件???????1626??2011-08-02?21:20??D3DEngine\3DPushBox\D3DApp.h
?????文件??????25214??2011-08-02?22:41??D3DEngine\3DPushBox\directx.ico
?????文件???????7982??2011-08-29?11:07??D3DEngine\3DPushBox\DxSound.cpp
?????文件???????1146??2011-08-29?10:53??D3DEngine\3DPushBox\DxSound.h
?????文件??????17004??2011-09-13?19:58??D3DEngine\3DPushBox\Game.cpp
?????文件???????2213??2011-09-13?20:34??D3DEngine\3DPushBox\Game.h
?????文件??????????3??2011-08-09?10:27??D3DEngine\3DPushBox\level\level.ini
?????文件?????????62??2011-08-08?21:18??D3DEngine\3DPushBox\level\level1.map
?????文件????????124??2011-08-09?10:08??D3DEngine\3DPushBox\level\level2.map
?????文件????????138??2011-08-09?10:27??D3DEngine\3DPushBox\level\level3.map
?????文件????????406??2011-08-08?21:13??D3DEngine\3DPushBox\level\地圖數(shù)據(jù)說(shuō)明.txt
?????文件?????????87??2011-09-13?20:36??D3DEngine\3DPushBox\log.txt
?????文件???????1595??2011-08-05?17:59??D3DEngine\3DPushBox\Pla
?????文件????????448??2011-08-05?17:56??D3DEngine\3DPushBox\Pla
?????文件???????1825??2011-08-02?16:44??D3DEngine\3DPushBox\PushBoxCube.cpp
?????文件????????553??2011-08-02?19:44??D3DEngine\3DPushBox\PushBoxCube.h
?????文件???????6831??2011-08-08?20:55??D3DEngine\3DPushBox\PushBoxMap.cpp
?????文件???????1695??2011-08-08?14:26??D3DEngine\3DPushBox\PushBoxMap.h
?????文件????????452??2011-08-02?22:40??D3DEngine\3DPushBox\resource.h
?????文件??????74297??1999-12-07?21:22??D3DEngine\3DPushBox\sound\background.mid
?????文件??????13538??2002-01-06?13:10??D3DEngine\3DPushBox\sound\get.wav
............此處省略321個(gè)文件信息
評(píng)論
共有 條評(píng)論