本意還是想了解DirectX的,由于網上拿不到書的pdf文檔,幸好有作者的源代碼示例,想完整的看一下,基本的遊戲需要的點.
下面直接以代碼為例,僅用于幫助自身了解
http://www.programming2dgames.com/chapter2.htm
示例一:Hello World
建立了一個标準的Win32消息循環程式示例
示例二:Character Input
介紹了鍵盤輸入消息WM_CHAR
case WM_CHAR: // a character was entered by the keyboard
switch (wParam) // the character is in wParam
{
case 0x08: // backspace
case 0x09: // tab
case 0x0A: // linefeed
case 0x0D: // carriage return
case 0x1B: // escape
MessageBeep((UINT) -1); // beep but do not display
return 0;
default: // displayable character
ch = (TCHAR) wParam; // get the character
InvalidateRect(hwnd, NULL, TRUE); // force WM_PAINT
return 0;
}
示例三:Keys Down
case WM_KEYDOWN: // key down
vkKeys[wParam] = true;
switch(wParam)
{
case VK_SHIFT: // shift key
nVirtKey = GetKeyState(VK_LSHIFT); // get state of left shift
if (nVirtKey & SHIFTED) // if left shift
vkKeys[VK_LSHIFT] = true;
nVirtKey = GetKeyState(VK_RSHIFT); // get state of right shift
if (nVirtKey & SHIFTED) // if right shift
vkKeys[VK_RSHIFT] = true;
break;
case VK_CONTROL: // control key
nVirtKey = GetKeyState(VK_LCONTROL);
if (nVirtKey & SHIFTED) // if left control
vkKeys[VK_LCONTROL] = true;
nVirtKey = GetKeyState(VK_RCONTROL);
if (nVirtKey & SHIFTED) // if right control
vkKeys[VK_RCONTROL] = true;
break;
}
InvalidateRect(hwnd, NULL, TRUE); // force WM_PAINT
return 0;
break;
bool AnotherInstance()
{
HANDLE ourMutex;
// Attempt to create a mutex using our unique string
ourMutex = CreateMutex(NULL, true, "Use_a_different_string_here_for_each_program_48161-XYZZY");
if (GetLastError() == ERROR_ALREADY_EXISTS)
return true; // another instance was found
return false; // we are the only instance
}