VC_Win_API_编程简介及游戏开发.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC_Win_API_编程简介及游戏开发.ppt

WinMain()方法 ---(2) //获取窗体大小 GetClientRect(hAppWnd, g_ClientRect); g_iClientWidth = g_ClientRect.right-g_ClientRect.left; g_iClientHeight = g_ClientRect.bottom-g_ClientRect.top; //将游戏区域分成纵,横均为20块的小方块,并计算每块区域的大小 tableBlockWidth = (g_iClientWidth-2*WALL_WIDTH)/20; tableBlockHeight = (g_iClientHeight-2*WALL_HEIGHT)/20; windowDC=GetDC(NULL); //获取当前主窗口设备与windowDC关联 //创建与windowDC兼容的内存设备环境 bufferDC=CreateCompatibleDC(windowDC); picDC=CreateCompatibleDC(windowDC); endDC=CreateCompatibleDC(windowDC); scoreDC=CreateCompatibleDC(windowDC); //位图的初始化或载入位图 bufferBMP=CreateCompatibleBitmap(windowDC,g_iClientWidth,g_iClientHeight); picBMP=(HBITMAP)LoadImage(NULL,snake.bmp,IMAGE_BITMAP,160,80,LR_LOADFROMFILE); hbmpWall=(HBITMAP)LoadImage(NULL,brick.bmp,IMAGE_BITMAP,16,16,LR_LOADFROMFILE); endBMP = (HBITMAP)LoadImage(NULL,end.bmp,IMAGE_BITMAP,369,300,LR_LOADFROMFILE); hbmpScore=(HBITMAP)LoadImage(NULL,scoreboard.bmp,IMAGE_BITMAP,265,55,LR_LOADFROMFILE); WinMain()方法 ---(3) //声明位图与设备环境的关联 SelectObject(bufferDC,bufferBMP); SelectObject(picDC,picBMP); SelectObject(endDC,endBMP); SelectObject(scoreDC,hbmpScore); //建立画刷与其名相对应的图像的关联, //以备用刷子将墙刷出来,用PatBlt()实现 hbrushWall = CreatePatternBrush(hbmpWall); StartGame(); while(GetMessage(msg,NULL,0,0)) { TranslateMessage(msg); DispatchMessage(msg); } return msg.wParam; } WndProc()方法--(1) LRESULT CALLBACK WndProc(HWND hWnd,UINT message, WPARAM wParam,LPARAM lParam) { switch(message) { case WM_TIMER : OnTimer((UINT)wParam); break; case WM_KEYDOWN: switch(wParam) { case VK_ESCAPE: exit(0); break; case VK_UP: table.ChangeSnakeDirect(S_UP);break; case VK_DOWN: table.ChangeSnakeDirect(S_DOWN); break; case VK_LEFT: table.ChangeSnakeDirect(S_LEFT); break; case VK_RIGHT:table.ChangeSnak

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档