欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Programming 2D Games 读书笔记(第二章)

发布时间:2025/3/15 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Programming 2D Games 读书笔记(第二章) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 

本意还是想了解DirectX的,由于网上拿不到书的pdf文档,幸好有作者的源代码示例,想完整的看一下,基本的游戏需要的点.

下面直接以代码为例,仅用于帮助自身理解

http://www.programming2dgames.com/chapter2.htm

示例一:Hello World

创建了一个标准的Win32消息循环程序示例

示例二:Character Input

介绍了键盘输入消息WM_CHAR

case WM_CHAR: // a character was entered by the keyboardswitch (wParam) // the character is in wParam{case 0x08: // backspacecase 0x09: // tabcase 0x0A: // linefeedcase 0x0D: // carriage returncase 0x1B: // escapeMessageBeep((UINT) -1); // beep but do not displayreturn 0;default: // displayable characterch = (TCHAR) wParam; // get the characterInvalidateRect(hwnd, NULL, TRUE); // force WM_PAINTreturn 0;}

示例三:Keys Down

介绍了键盘消息

case WM_KEYDOWN: // key downvkKeys[wParam] = true;switch(wParam){case VK_SHIFT: // shift keynVirtKey = GetKeyState(VK_LSHIFT); // get state of left shiftif (nVirtKey & SHIFTED) // if left shiftvkKeys[VK_LSHIFT] = true;nVirtKey = GetKeyState(VK_RSHIFT); // get state of right shiftif (nVirtKey & SHIFTED) // if right shiftvkKeys[VK_RSHIFT] = true;break;case VK_CONTROL: // control keynVirtKey = GetKeyState(VK_LCONTROL);if (nVirtKey & SHIFTED) // if left controlvkKeys[VK_LCONTROL] = true;nVirtKey = GetKeyState(VK_RCONTROL);if (nVirtKey & SHIFTED) // if right controlvkKeys[VK_RCONTROL] = true;break;}InvalidateRect(hwnd, NULL, TRUE); // force WM_PAINTreturn 0;break;

示例四:Prevent Multiple

使用Mutex实现单实例

bool AnotherInstance() {HANDLE ourMutex;// Attempt to create a mutex using our unique stringourMutex = CreateMutex(NULL, true, "Use_a_different_string_here_for_each_program_48161-XYZZY");if (GetLastError() == ERROR_ALREADY_EXISTS)return true; // another instance was foundreturn false; // we are the only instance }

总结

以上是生活随笔为你收集整理的Programming 2D Games 读书笔记(第二章)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。