• 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 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;

    示例四:Prevent Multiple

    使用Mutex实现单实例

    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
    }
  • 相关阅读:
    序列化
    输入输出流——字符流部分
    输入输出流——字节流部分
    GitHub10岁之际HanLP自然语言处理包用户量跃居榜首
    hadoop大数据处理平台与案例
    dkhadoop的自然语言处理技术介绍
    hadoop大数据技术架构详解
    hadoop框架结构介绍
    Hadoop集群环境搭建步骤说明
    快速了解掌握中文自然语言处理
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/3331262.html
Copyright © 2020-2023  润新知