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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

飞机大战实训报告docxWord格式文档下载.docx

1、本程序中主要用到的函数有:GetHeadPosition():获取链表首元素的POSITION;AddTail():将新的元素添加到链表最后;GetNext( POSITION& rPosition ):使rPosition指向下一个元素。2.3 设置定时器SetTimer()函数来设置定时器。2.4 背景滚动为了让游戏场景更加逼真,游戏节奏更加合理,可以通过让背景滚动来提高游戏的场景效应,实现这一技术时,可以将一张背景图片复制为2张,从上到下连续的拼接在一起,使其不会出现图片的卡顿和瞬移现象。2.5内存释放技术这个程序中有大量的地方需要使用内存,如果不及时删除会出现闪图等情况,容易导致程序崩

2、溃,要及时释放内存资源。3. 总体设计与详细设计3.1 系统模块划分3.2 主要功能模块类关系图:4. 编码实现/ PlaneGameView.cpp : CPlaneGameView 类的实现void CPlaneGameView:UpdateFrame(CDC* pMemDC) /绘制天空 if(level=0) CPaintDC dc(this); CBitmap bmpBackground; /位图对象 bmpBackground.LoadBitmap(IDB_BITMAP1); CDC dcMem; /定义一个工具箱(设备上下文) dcMem.CreateCompatibleDC(&

3、dc); BITMAP bitmap; bmpBackground.GetBitmap(&bitmap); /建立绑定关系 CBitmap *back = dcMem.SelectObject(&bmpBackground); /保存原有CDC对象,并选入新CDC对象入DC static int curr = 1; if (curr BitBlt(0, 0, GAME_WIDTH, GAME_HEIGHT - curr, &dcMem, 0, curr, SRCCOPY);BitBlt(0, GAME_HEIGHT - curr, GAME_WIDTH, curr, &dcMem, 0, 0,

4、 SRCCOPY); if(level=1&l=0&boss=0)FillSolidRect(0, 0, GAME_WIDTH, GAME_HEIGHT, RGB(0, 0, 0); l+;z=1; if(level=1&l!=0&boss!=0) CPaintDC dc(this); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); CDC dcMem; dcMem.CreateCompatibleDC(& BITMAP bitmap; bmpBackground.GetBitmap(& CBitmap *back =

5、 dcMem.SelectObject(& static int curr = 1; if (curr if (level = 2 & l != 0 & boss != 0) bmpBackground.LoadBitmap(IDB_MAP2); if(level=3 & bmpBackground.LoadBitmap(IDB_MAP3); if(level=4 & bmpBackground.LoadBitmap(IDB_MAP4);/兼容 if(level=5 & bmpBackground.LoadBitmap(IDB_MAP5);5 & bmpBackground.LoadBitma

6、p(IDB_MAP6);SetBkMode(TRANSPARENT);SetTextAlign(TA_CENTER);SetTextColor(RGB(255, 255, 255); wchar_t S81000; wsprintf(S8, L单击鼠标进入游戏);TextOutW(GAME_WIDTH / 2, GAME_HEIGHT / 2, CString(S8);z! wchar_t S91000; wsprintf(S9, L点击进入下一关TextOutW(GAME_WIDTH / 2, GAME_HEIGHT / 2, CString(S9);z=0) wchar_t S11000;

7、 wchar_t S21000; wsprintf(S1, L得分:%d, number); wsprintf(S2, L关卡:, level);TextOutW(35, 0, CString(S1); TextOutW(200, 0, CString(S2); wchar_t S31000; wsprintf(S3 , L按下“F1”开启无敌模式TextOutW(390, 0, CString(S3); wchar_t S41000; wsprintf(S4, L按下“F2”关闭无敌模式TextOutW(390, 20, CString(S4); wchar_t S51000; if(wu=

8、0) wsprintf(S5, L大招数量:,dazhao );TextOutW(430, 40, CString(S5); if(wu=1) wsprintf(S5, L无限 wchar_t S61000; wsprintf(S6, L按下空格发射子弹TextOutW(60, 50, CString(S6); wchar_t S71000; wsprintf(S7, L按下“Z”大招TextOutW(56, 70, CString(S7); /绘制我方战机 if (m_pMe != NULL) m_pMe-Draw(m_pMemDC, FALSE); else /Game Over CStr

9、ing str = _T(Game Over!TextOut(GAME_WIDTH / 2, GAME_HEIGHT / 2, str); /绘制血条 CString z1; z1.Format(L战机HP(%d), shengming);TextOut(47, 30, z1); pMemDC-FillSolidRect(90, 33, shengming * 10, 10, RGB(255, 0, 0); if (bxt = 1) CString z2; z2.Format(LBoss HP (%d),boss);TextOut(35, 100, z2);FillSolidRect(80,

10、108, boss * 2, 10, RGB(0, 255, 0); /绘制 导弹、爆炸、敌机、子弹、boss、boss子弹 for (int i = 0;i Draw(pMemDC, FALSE) m_ObjListi.RemoveAt(pos2); delete pObj; /复制内存DC到设备DC m_pDC-BitBlt(0, 0, GAME_WIDTH, GAME_HEIGHT, m_pMemDC, 0, 0, SRCCOPY);AI() static int nCreator = rand() % 5+20 ; /随机产生敌机 if (nCreator =25&count5&cou

11、nt%200=0&bn=0) if (m_pMe = NULL) return; /检测四个方向键,移动战机iSetVerMotion(1); nMeMotion = GetKey(VK_DOWN);SetVerMotion(-1); nMeMotion = GetKey(VK_RIGHT);SetHorMotion(1); nMeMotion = GetKey(VK_LEFT);SetHorMotion(-1); /产生战机导弹 if (GetKey(VK_SPACE) = 1)/按下了空格键 if (m_pMe != NULL & m_pMe-Fired() CPoint pt = m_p

12、Me-GetPoint(); if (level = 1 & wu = 0) m_ObjListenBomb.AddTail(new CBomb(pt.x + 20, pt.y + 10); if (level = 2 & m_ObjListenBomb.AddTail(new CBomb(pt.x + 10, pt.y + 30); m_ObjListenBomb.AddTail(new CBomb(pt.x + 30, pt.y + 30); if (level = 3 & m_ObjListenBomb.AddTail(new CBomb(pt.x + 10, pt.y + 30); m_ObjListenBomb.AddTail(new CBomb(pt.x + 30, pt.y + 30); m_ObjListenBomb.AddTail(new CBomb(pt.x + 20, pt.y + 30); if (level = 4 &

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

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