欢迎访问:常州市武进区嘉泽中心小学网站 !今天是:
栏目列表
您现在的位置是:首页>>教师>>计算机技术>>程序设计>>游戏开发>>文章内容
菜鸟之D3D学习(准备篇)
发布时间:2008-11-20   点击:   来源:本站原创   录入者:佚名
  高手不要看了呵呵本人正在学习D3D 有一些编程经验, VC: 半年 C#:4个月 刚毕业 以上为本人条件,差点,不过我相信学习只要有方法就决对可以的。 按小游戏的构架学吧呵呵这样要容易点. 今天先学习一些D3D制作的一些前提知识。 本机编译环境:{域名已经过期} Directx 9.0 用到的是win32的工程,最起码SDK要看懂和理解自动生成的代码(在此不能说了实在不行,没法,再看呵呵) 在程序中改进程序本的循环,说白了就是让你的程序运行你的游戏主体GameMain()当然改完了还要有初使化GameInit()和游戏的结束GameEnd() 基本上就是GameInit()->GameMain()->GameEnd() 不多说了贴些代码上去 // 全局变量: //new s 定义新加变量 HWND g_hwnd; bool g_activeApp; //new e //初使化在这儿 GameInit(); // 主消息循环: //while (GetMessage(&msg, NULL, 0, 0)) //{ // if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) // { // TranslateMessage(&msg); // DispatchMessage(&msg); // } //} //new s 此处是重点把上面的循环换成下面的 while (1) { if (PeekMessage(&msg,NULL,NULL,NULL,PM_NOREMOVE)) { if (GetMessage(&msg, NULL, 0, 0)) { return (int) msg.wParam; } TranslateMessage(&msg); DispatchMessage(&msg); } else { if (g_activeApp) { if (!GameMain())//此处主循环 { PostQuitMessage(1); } } else { WaitMessage(); } } } //new e //销毁放这儿 GameEnd(); return (int) msg.wParam; } BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { //new s 付值 不要忘了以后用的到的 g_hwnd = hWnd; //new e return TRUE; } LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; switch (message) { //new s此处也很重要来吧 case WM_ACTIVATEAPP: g_activeApp = (int) wParam; break; //new e case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // 分析菜单选择: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: 在此添加任意绘图代码... EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; 行了这段代码没什么难的改一下而以吃透就行下一篇就可以D3D的路程了要睡了明天接着来. 没办法格式总搞不好,晕了明天再说
附件:
    关闭窗口
    打印文档
    账号登录
    保持登录 忘记密码?
    账号与武进教师培训平台同步