游戏开发程序设计基础(自主学习1)第一章:第一个“游戏”程序

游戏开发程序设计基础【中国传媒大学】

第一章:第一个“游戏”程序

 

第一节:入门向导

1.选择windows桌面向导

2.设置工程名

3.选择桌面应用程序

至此已经创建好了一个项目,VS会自动给出整个应用程序的一系列框架文件,从“源文件->主文件”就可以看见程序的主文件。

注:wWinMain:入口函数、main函数

       WndProc: 即Windows Process,处理窗口所有消息

       case WM_PAINT:绘图消息

 

第二节:简单的“应用程序”

wWinMain函数内“//TODO”后添加一行代码

TextOut(hdc,0,0,L"hello world!",12);

TextOut函数:文字输出

hdc:输出窗口位置,为屏幕左上角(0,0);

L:转化为宽字符串类型,字符串"hello world!"长度为12;

 

第三节:进阶——更改输出文字颜色

1)wWinMain函数前   添加全局变量     COLORREF color; 指明输出文字颜色

      wWinMain函数内  设置                 color = RGB(0,255,0)     指明文字颜色为绿色

2)WndProc函数内TextOut函数前  设置       SetTextColor(hdc,color);     对消息进行处理。

 

第四节:进阶——添加鼠标交互功能

case WM_LBUTTONDOWN;        //鼠标左键

  color = RGB(255, 0, 0);           //红色                         

  InvalidateRect(hWnd, NULL, TRUE);     //触发重绘消息

  break; 

case WM_RBUTTONDOWN:      //鼠标右键

        color = RGB(249, 205, 173); 

        InvalidateRect(hWnd, NULL, TRUE); 

        break; 

 

第五节:进阶——将输出文字位置改为鼠标位置,且随鼠标移动

case WM_MOUSEMOVE: 

        x = LOWORD(lParam); 

        y = HIWORD(lParam);

        InvalidateRect(hWnd, NULL, TRUE); 

        break; 

case WM_MOUSEWHEEL: 

       {  int zDelta = (short)HIWORD(wParam); 

               if (zDelta > 0) 

               {  if (g < 255) 

                     g += 1;

          } 

       else 

             if (g > 0) 

                  g --; 

       color = RGB(0, g, 122); 

       InvalidateRect(hWnd, NULL, TRUE); 

  } 

  break; 

case WM_PAINT: 

       {  PAINTSTRUCT ps; 

               HDC hdc = BeginPaint(hWnd, &ps); 

               // TODO: 在此处添加使用 hdc 的任何绘图代码... 

               SetTextColor(hdc, color); 

               TextOut(hdc, x, y, L"Hello World!", 12); 

               swprintf_s(infor, L"r:%d,g:%d,b:%d\nx=%d,y=%d", r, g, b, x, y);          //格式化字符串 

               TextOut(hdc, x, y - 100, infor, wcslen(infor)); 

               EndPaint(hWnd, &ps); 

   } 

        break;                     

posted @ 2021-10-09 23:38  Anjora  阅读(506)  评论(0)    收藏  举报