|
|
int APIENTRY WinMain(HINSTANCE hInstance, //传入的窗口句柄
HINSTANCE hPrevInstance, //已存在的窗口句柄
LPSTR lpCmdLine, //传入的命令行参数
int nCmdShow) //设置窗口的显示方式
{
CGameEngine_App GameEngine_App;
MSG msg;
if(!GameEngine_App.CreateWnd("4叉树地形例子",hInstance,hPrevInstance,nCmdShow)){
return false;
}
g_hWnd=GameEngine_App.GetHWnd(); //取得已创建的窗口句柄
if(!GameEngine_Input.CreateInput(hInstance,g_hWnd)){ //初始化输入设备
MessageBox(NULL,"初始化输入设备失败.","警告",MB_OK|MB_ICONINFORMATION);
return false;
}
ShowCursor(true);
if(!CreateD3DDevice(g_hWnd,true)){ //创建D3D设备
return false;
}
//初始化摄影机
D3DXVECTOR3 CameraPos=D3DXVECTOR3(500.0f,300.0f,1200.0f);
D3DXVECTOR3 CameraLookAtPos=D3DXVECTOR3(500.0f,0.0f,500.0f);
D3DXVECTOR3 CameraUpPos=D3DXVECTOR3(0.0f,1.0f,0.0f);
g_Camera.InitCamera(CameraPos,CameraLookAtPos,CameraUpPos);
//设置相应的摄影和投影变换
SetupView();
SetupProjection();
//创建地形
g_pTerrain=new CLODTerrain(g_pd3dDevice,true);
//初始化地形高度数据
if(!g_pTerrain->InitTerrain(_T("HeightMap.raw"),_T("mountainTex.tga"))){
MessageBox(NULL,"初始化地形数据失败.","提示",0);
return false;
}
//4叉树地形分割
g_pTerrain->UpdateTerrain(&g_Camera);
while(msg.message!=WM_QUIT){
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else{
****>**** if(DoFrame()==false) break; //渲染一帧地形
}
}
Shutdown();
UnregisterClass(WNDCLASSNAME, hInstance);
CoUninitialize(); //注销所有COM对象
return true;
}
我在上面****>****的地方设置断点,想进DoFrame()去看看运行机理,但却出现游戏黑屏不动了,请问该怎么?谢谢高手了 |
|