游戏开发

本类阅读TOP10

·初学者的福音:游戏开发新手入门指南
·《学VC、编游戏》重点算法解疑·快一点
·Windows的消息机制与消息重定向技术
·《学VC、编游戏》重点算法解疑·再快一点
·Rogue Guide
·《学VC、编游戏》重点算法解疑·狩猎谋生
·通向天才之路 : 把模块塞到动态连接库里去
·完成端口的深入理解及一种变态用法
·DirectX 9.0 SDK 开发包下载(April 2005)
·在OpenGL中实现多纹理混合(Multi-texture Blending)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
菜鸟之D3D学习(准备篇)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

高手不要看了呵呵本人正在学习D3D 有一些编程经验, VC: 半年 C#:4个月 刚毕业 以上为本人条件,差点,不过我相信学习只要有方法就决对可以的。 按小游戏的构架学吧呵呵这样要容易点. 今天先学习一些D3D制作的一些前提知识。 本机编译环境:2003.net 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的路程了要睡了明天接着来. 没办法格式总搞不好,晕了明天再说


相关文章

相关软件