ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:37.82KB ,
资源ID:8818070      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8818070.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++编程实例大作业.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++编程实例大作业.docx

1、C+编程实例大作业C+大作业是男人就下100层编程实例打开VC+6.0,创建一个win32 application工程,名字随便取,新建一个C+ source file文件复选添加到工程选项在C+ source file添加如下代码#include #include #include#include HINSTANCE hInst;const int DLou=6;/楼层数int CJieTiDLou+1=1,2,3,3,4,4,2;/阶梯类型int LJieTiDLou+1;/阶梯左边距int HJieTiDLou+1;/阶梯高度int WJieTiDLou+1;/阶梯宽度int XJieT

2、iDLou+1;/阶梯左上脚X坐标int YJieTiDLou+1;/阶梯左上脚Y坐标int TJieTiDLou+1;/阶梯的个性数据const int VY_JieTi=5;const int RefreshTime=100;/刷新时间const int AY_Num=5;const int VX_Num=20;const int VY_TH=26;int zt=0;/游戏是否开始=0等待开始=1正在进行中=2结束了static char Text100;const int FixTime=12;/计算时间片int VX=0;/X方向速度int VY=-VY_JieTi;/Y方向速度int

3、 AY=0;/Y方向的加速度int ManX;/角色的X坐标int ManY;/角色的Y坐标int OManX,OManY;int pz;int pztime;const int GameWindowWidth=411;/游戏窗口的有效区域宽度const int GameWindowHeight=535;/游戏窗口的有效区域高度const int GameTopHeight=23;/游戏的有效区域上部提示信息区宽度const int GameMainHeight=495;/游戏主区域高度const int GameMainWidth=376;/游戏主区域宽度const int ManWidth

4、=16;/角色的宽度const int ManHeight=16;/角色的高度const int DYLou=5;/楼层Y方向均分数const int DJieTi=10;/每层分数const int DXJieTi=3;/阶梯X方向均分数const int VX_TS=3;int vx_ts=0;int Life=10;/角色的生命值int Num=0;int Num_time;static HBITMAP RoleBmp;static HBITMAP DingZiBmp;static HBITMAP LCBmp;static HBITMAP JieTiBmp6;static HBITMAP

5、 hMemBmp;/图像缓存LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int IsJiaCeng();/判断是否需要加一层阶梯int on(int);int Init();int FixMan();/处理人物的函数HWND hwnd;int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpcmdLine,int nCmdShow)hInst=hInstance;static TCHAR szAppName=TEXT(DisplayWithScroll

6、Bar);static TCHAR szClassName=TEXT(DisplayWithscrlBarClass);MSG msg;WNDCLASS wndclass;wndclass.style=CS_HREDRAW|CS_VREDRAW;wndclass.lpfnWndProc=WndProc;wndclass.cbClsExtra=0;wndclass.cbWndExtra=0;wndclass.hInstance=hInstance;wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);wndclass.hCursor=LoadCursor(N

7、ULL,IDC_ARROW);wndclass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);wndclass.lpszMenuName=NULL;wndclass.lpszClassName=szClassName;/注册窗口类if(!RegisterClass(&wndclass) MessageBox(NULL,TEXT(This promgrame requires Windows NT),szAppName,MB_ICONERROR); return 0;/创建窗口hwnd=CreateWindow( szClassName, T

8、EXT(是男人就下100层), /创建窗口时,添加了WS_VSCROLL风格,以增加垂直滚动条 WS_OVERLAPPEDWINDOW, 50, 100, 420, 571, NULL, NULL, hInstance, NULL);/显示窗口ShowWindow(hwnd,nCmdShow);/更新窗口UpdateWindow(hwnd);/消息循环while(GetMessage(&msg,NULL,0,0) TranslateMessage(&msg); DispatchMessage(&msg);return msg.wParam;LRESULT CALLBACK WndProc(HW

9、ND hwnd,UINT message,WPARAM wParam,LPARAM lParam) RECT rect;static HDC hdc,hdc_Role,hdc_JieTi,hdc_lp,hdc_dz;static HDC MemDC;PAINTSTRUCT ps;int i,j;static HPEN hpen_black,hpen_blue,hpen_red,hpen_gray;static HBRUSH hbrush_black,hbrush_blue,hbrush_red,hbrush_gray;static int nClientWidth,nClientHeight;

10、 /窗口宽高hpen_black=CreatePen(PS_SOLID,2,RGB(255,255,255);switch(message)case WM_CREATE: /*DC初始化*/hdc=GetDC(hwnd); GetClientRect(hwnd,&rect); nClientWidth=rect.right-rect.left ; nClientHeight=rect.bottom -rect.top ; hdc_Role=CreateCompatibleDC(hdc); hdc_JieTi=CreateCompatibleDC(hdc); hdc_lp=CreateCompa

11、tibleDC(hdc); hdc_dz=CreateCompatibleDC(hdc); MemDC=CreateCompatibleDC(hdc); /*初始化临时画布 必须*/ hMemBmp=CreateCompatibleBitmap(hdc,nClientWidth,nClientHeight); SelectObject(hdc_Role,hMemBmp); SelectObject(hdc_JieTi,hMemBmp); SelectObject(hdc_lp,hMemBmp); SelectObject(hdc_dz,hMemBmp); /*载入人物的图片*/ RoleBmp

12、= (HBITMAP)LoadImage(hInst,Resman.bmp, IMAGE_BITMAP,0,0,LR_LOADFROMFILE); JieTiBmp0= (HBITMAP)LoadImage(hInst,RessmallTile5.bmp, IMAGE_BITMAP,0,0,LR_LOADFROMFILE); JieTiBmp1= (HBITMAP)LoadImage(hInst,ResSPRING_SELF.bmp, IMAGE_BITMAP,0,0,LR_LOADFROMFILE); JieTiBmp2= (HBITMAP)LoadImage(hInst,RessmallT

13、eeth3.bmp, IMAGE_BITMAP,0,0,LR_LOADFROMFILE); JieTiBmp3= (HBITMAP)LoadImage(hInst,ResTRANSPORT_RIGHT_SELF.bmp, IMAGE_BITMAP,0,0,LR_LOADFROMFILE); JieTiBmp4= (HBITMAP)LoadImage(hInst,ResTRANSPORT_LEFT_SELF.bmp, IMAGE_BITMAP,0,0,LR_LOADFROMFILE); LCBmp= (HBITMAP)LoadImage(hInst,Restile1.bmp, IMAGE_BIT

14、MAP,0,0,LR_LOADFROMFILE); DingZiBmp= (HBITMAP)LoadImage(hInst,Resdingzi.bmp, IMAGE_BITMAP,0,0,LR_LOADFROMFILE); Init(); return 0;case WM_PAINT: hdc=BeginPaint(hwnd,&ps);SelectObject(hdc,hpen_black);SetTextColor(hdc,RGB(207,49,211);SetBkMode(hdc,TRANSPARENT);sprintf(Text,LIFE:%2d 第%8d层, 核桃(QQ:2410250

15、284),Life,Num);TextOut(hdc,25,0,Text,51);/*绘制游戏界面的边界*/MoveToEx(hdc,0,GameWindowHeight,NULL);LineTo(hdc,GameWindowWidth,GameWindowHeight);MoveToEx(hdc,GameWindowWidth,GameWindowHeight,NULL);LineTo(hdc,GameWindowWidth,0);/*绘制横纵向分区*/*MoveToEx(hdc,0,GameTopHeight,NULL);LineTo(hdc,GameWindowWidth,GameTop

16、Height);MoveToEx(hdc,(GameWindowWidth-GameMainWidth)/2,GameTopHeight,NULL);LineTo(hdc,(GameWindowWidth-GameMainWidth)/2,GameWindowHeight);MoveToEx(hdc,GameWindowWidth-(GameWindowWidth-GameMainWidth)/2,GameTopHeight,NULL);LineTo(hdc,GameWindowWidth-(GameWindowWidth-GameMainWidth)/2,GameWindowHeight);

17、MoveToEx(hdc,(GameWindowWidth-GameMainWidth)/2,GameTopHeight,NULL);LineTo(hdc,GameWindowWidth-(GameWindowWidth-GameMainWidth)/2,GameTopHeight);MoveToEx(hdc,(GameWindowWidth-GameMainWidth)/2,GameWindowHeight-GameMainHeight,NULL);LineTo(hdc,GameWindowWidth-(GameWindowWidth-GameMainWidth)/2,GameWindowH

18、eight-GameMainHeight);*/*绘制辅助边界*/*for(i=0;i=DLou-1;i+)MoveToEx(hdc,(GameWindowWidth-GameMainWidth)/2,GameWindowHeight-GameMainHeight+i*GameMainHeight/DLou,NULL);LineTo(hdc,GameWindowWidth-(GameWindowWidth-GameMainWidth)/2,GameWindowHeight-GameMainHeight+i*GameMainHeight/DLou);for(i=0;i=DJieTi-1;i+)M

19、oveToEx(hdc,(GameWindowWidth-GameMainWidth)/2+(i+1)*GameMainWidth/DJieTi,GameWindowHeight-GameMainHeight,NULL);LineTo(hdc,(GameWindowWidth-GameMainWidth)/2+(i+1)*GameMainWidth/DJieTi,GameWindowHeight);*/*开始载入人物*/SelectObject(hdc_Role,RoleBmp);BitBlt(hdc,OManX,OManY,16,16,hdc_Role,0,0,SRCCOPY);/*开始载入

20、左右边带动条*/SelectObject(hdc_lp,LCBmp);BitBlt(hdc,0,GameTopHeight,(GameWindowWidth-GameMainWidth)/2,GameWindowHeight-GameTopHeight,hdc_lp,0,0,SRCCOPY);BitBlt(hdc,GameWindowWidth-(GameWindowWidth-GameMainWidth)/2,GameTopHeight,(GameWindowWidth-GameMainWidth)/2,GameWindowHeight-GameTopHeight,hdc_lp,0,0,SR

21、CCOPY);/*绘制上面的钉子*/SelectObject(hdc_dz,DingZiBmp);BitBlt(hdc,(GameWindowWidth-GameMainWidth)/2,GameTopHeight,GameMainWidth,GameWindowHeight-GameTopHeight-GameMainHeight,hdc_dz,5,0,SRCCOPY);/*开始绘制阶梯*/for(i=0;i=DLou-1;i+)if(CJieTii=0)SelectObject(hdc_JieTi,JieTiBmp0);/BitBlt(MemDC,0,0,16,16,hdc_Role,0,

22、0,NOTSRCERASE);BitBlt(hdc,XJieTii,YJieTii,WJieTii,HJieTii,hdc_JieTi,0,0,SRCCOPY);else if(CJieTii=1)SelectObject(hdc_JieTi,JieTiBmp1);/BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);BitBlt(hdc,XJieTii,YJieTii,WJieTii,HJieTii,hdc_JieTi,0,0,SRCCOPY);else if(CJieTii=2)SelectObject(hdc_JieTi,JieTiBmp2)

23、;/BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);BitBlt(hdc,XJieTii,YJieTii,WJieTii,HJieTii,hdc_JieTi,0,0,SRCCOPY);else if(CJieTii=3)SelectObject(hdc_JieTi,JieTiBmp3);/BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);BitBlt(hdc,XJieTii,YJieTii,WJieTii,HJieTii,hdc_JieTi,0,0,SRCCOPY);else if(CJieTii

24、=4)SelectObject(hdc_JieTi,JieTiBmp4);/BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);BitBlt(hdc,XJieTii,YJieTii,WJieTii,HJieTii,hdc_JieTi,0,0,SRCCOPY);else SelectObject(hdc_JieTi,JieTiBmp0);/BitBlt(MemDC,0,0,16,16,hdc_Role,0,0,NOTSRCERASE);BitBlt(hdc,XJieTii,YJieTii,WJieTii,HJieTii,hdc_JieTi,0,0,N

25、OTSRCCOPY);/释放DCReleaseDC(hwnd,hdc_Role);ReleaseDC(hwnd,hdc_JieTi);ReleaseDC(hwnd,hdc_lp);ReleaseDC(hwnd,hdc_dz); ReleaseDC(hwnd,MemDC);if(zt=0)SetBkColor(hdc,RGB(0,0,0);SetBkMode(hdc,OPAQUE);sprintf(Text,按任意键开始游戏);TextOut(hdc,125,250,Text,16);if(zt=2)SetBkColor(hdc,RGB(0,0,0);SetBkMode(hdc,OPAQUE);

26、sprintf(Text,按任意键重新开始游戏);TextOut(hdc,120,250,Text,20);ReleaseDC(hwnd,hdc);EndPaint(hwnd,&ps); return 0;case WM_TIMER:Num_time+;/时间函数,重难点 for(i=0;i=DLou-1;i+) YJieTii-=VY_JieTi; if(CJieTii=3|CJieTii=4) TJieTii+; if(TJieTii=3) TJieTii=0; if(OManX+VX+vx_tsGameWindowWidth-(GameWindowWidth-GameMainWidth)

27、/2) ManX=GameWindowWidth-(GameWindowWidth-GameMainWidth)/2-ManWidth; else ManX=OManX+VX+vx_ts; VY+=AY; ManY=OManY+VY; if(ManYGameWindowHeight) Life=0; if(ManYGameWindowHeight-GameMainHeight) Life=0; /*最难的人物处理函数*/ IsJiaCeng(); FixMan(); if(Life=0) KillTimer(hwnd,1); zt=2; InvalidateRect(hwnd,NULL,tru

28、e);UpdateWindow(hwnd);return 0;case WM_KEYDOWN:if(zt!=1)SetTimer(hwnd,1,RefreshTime,NULL);zt=1;Init();if(zt=1)switch(wParam)case VK_LEFT:VX=-VX_Num;break; case VK_RIGHT:VX=VX_Num;break;return 0;case WM_KEYUP: switch(wParam) case VK_LEFT:VX=0;break; case VK_RIGHT:VX=0;break; return 0;case WM_DESTROY:

29、 PostQuitMessage(0); return 0;return DefWindowProc(hwnd,message,wParam,lParam);int FixMan()int JiaoX=0;int JiaoY=0;int i;/*最难的碰撞部分已经解决*/for(i=0;iDLou;i+) if(OManY+ManHeightYJieTii&JiaoY=0) JiaoX=OManX+int(float(YJieTii+VY_JieTi-OManY-ManHeight)*(ManX-OManX)/float(ManY-OManY+VY_JieTi);if(JiaoXXJieTii+WJieTii|JiaoX+ManWidthXJieTii) JiaoX=0; JiaoY=0;else JiaoY=YJieTii; pz=i; pztime=1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1