游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2233|回复: 6

Dx下怎么debug? 我是老菜鸟

[复制链接]

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2009-7-9 21:09:00 | 显示全部楼层 |阅读模式
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()去看看运行机理,但却出现游戏黑屏不动了,请问该怎么?谢谢高手了

11

主题

650

帖子

651

积分

高级会员

Rank: 4

积分
651
发表于 2009-7-9 21:17:00 | 显示全部楼层

Re:Dx下怎么debug? 我是老菜鸟

都停止渲染了 能不黑吗

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2009-7-9 21:19:00 | 显示全部楼层

Dx下怎么debug? 我是老菜鸟

Shutdown();才停止的吧。谢谢

0

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2009-7-10 13:05:00 | 显示全部楼层

Re: Dx下怎么debug? 我是老菜鸟

应该是你创建窗口的时候有个属性用的置顶 就是desktop大概是这个 不记得  所以进不去

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2009-7-11 23:07:00 | 显示全部楼层

Re:Dx下怎么debug? 我是老菜鸟

多谢了,5楼,我试好像还不太行呀
4楼能不能再说详细一点呀

谢谢谢谢谢谢谢谢

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2009-7-14 04:07:00 | 显示全部楼层

Re:Dx下怎么debug? 我是老菜鸟

再买个显示器,一边放代码一边放EXE,每帧看都可以

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2009-7-14 13:14:00 | 显示全部楼层

Re:Dx下怎么debug? 我是老菜鸟

你应该先看看Windows运行机制了解一下为什么黑屏。DX下不会马上把你的绘图操作显示在屏幕上,只能看到最后的结果,如果你一帧绘制的东西很多,可能根本区分不出来哪些操作画了什么。你可以使用NVPerf,这个工具可以把你一帧中的调用的DX函数全部列出来,并且可以查看每次绘图的结果。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 18:13

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表