c实训报告——飞机大战

c实训报告——飞机大战

ID:35200850

大小:367.00 KB

页数:30页

时间:2019-03-21

c实训报告——飞机大战_第1页
c实训报告——飞机大战_第2页
c实训报告——飞机大战_第3页
c实训报告——飞机大战_第4页
c实训报告——飞机大战_第5页
资源描述:

《c实训报告——飞机大战》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、软件开发生产实习报告姓名XXX学号XXXXXX班级XXXX项目名称飞机大战游戏实习地点XXX实习时间XXX实习成绩指导教师签字信息科学与工程学院2014年10月6日软件开发生产实习报告1.实习目的1.1使学生全面了解软件项目实施的过程,理解软件企业对于程序员的基本素质和技术能力要求。1.2使学生掌握C++及Window程序设计的基本技术,能够运用MFC技术及其开发环境进行小型项目的开发。1.3重点培养学生的独立创新精神和查阅资料能力,提高其口头和书面的沟通能力。1.4使学生掌握快速学习新知识、新技术方法,培养良好的分析问题和解决问题的能力1.5重点提高学生的编程能力,使学生建立

2、正确的编程理念,养成规范的编程习惯。2.实习计划2.1C++语言知识复习,尤其是指针的安全和类型转换继承的使用、多态的使用。2.2项目技术学习:Windows窗体消息机制、透明绘图、游戏对象的面向对象分析和设计、API使用,参考相应的书籍详尽的学习。2.3WindowsAPI编程基础练习,实现简单的透明贴图,即把战机图片贴到屏幕上。2.4读懂老师给的游戏项目技术架构设计、游戏对象的面向对象分析和设计、UML建模,同时把其余的图片包括敌机、子弹、爆炸效果登都贴到屏幕上。2.5项目编码、测试(包括讲师演练)、完成基本功能,主要实现战机的控制移动、敌机的随机出现并移动和敌机发射子弹等

3、。2.6项目迭代,完成扩展功能,把本项目的功能(尤其是人工智能部分)实现。2.7全部代码测试并改进,尽可能好的完善项目。3.实习过程3.1技术准备提高程序编写能力,提高程序调试能力,资料检索、阅读能力,强大的自学能力,加深对面向对象程序设计的理解。具体说来,需要掌握指针的安全和类型转换,继承和组合的区别、继承的使用,多态的使用,GDI的应用以及UML建模,了解游戏编程架构、Win32API编程。再具体来说:3.1.1透明贴图实现技术绘制透明位图的关键就是创建一个“掩码”位图(maskbitmap),这个“掩码”位图是一个单色位图,它是位图中图像的一个单色剪影。在详细介绍实现过程

4、之前先介绍下所使用的画图函数以及函数参数所代表的功能;整个绘制过程需要使用到BitBlt()函数。整个功能的实现过程如下:(1)创建一张大小与需要绘制图像相同的位图作为“掩码”位图;(2)将新创建的“掩码”位图存储至掩码位图的设备描述表中;(3)把位图设备描述表的背景设置成“透明色”,不需要显示的颜色;(4)复制粘贴位图到“掩码”位图的设备描述表中,这个时候“掩码”位图设备描述表中存放的位图与位图设备描述表中的位图一样;(5)把需要透明绘制的位图与对话框绘图相应区域的背景进行逻辑异或操作绘制到对话框上;(6)把“掩码”位图与这个时候对话框相应区域的背景进行逻辑与的操作;(7)重

5、复步骤5的操作,把需要透明绘制的位图与对话框绘图相应区域的背景进行逻辑异或操作绘制到对话框上;(8)最后把系统的画笔还给系统,删除使用过的GDIObject,释放非空的指针,最后把新建的设备描述表也删除。BOOLCGameObject::LoadImage(CImageList&imgList,UINTbmpID,COLORREFcrMask,intcx,intcy,intnInitial){CBitmapbmp;if(!bmp.LoadBitmap(bmpID))returnFALSE;if(!imgList.Create(cx,cy,ILC_COLOR24

6、ILC_MASK

7、,nInitial,0))returnFALSE;imgList.Add(&bmp,crMask);returnTRUE;}3.1.2CObList链表在本程序中我使用了CObList链表来分别存储敌机,炸弹,导弹,爆炸效果和掉落物品。CobList类似于一个双向链表,POSITION类型的变量为链表的键。使用POSITION变量,既可以作为链表循环中的循环变量,也可以作为标记某个位置的标签。我们可以通过获得某元素的POSITION来访问它。本程序中主要用到的函数有:GetHeadPosition()——获取链表首元素的POSITION,AddTail()——向链表尾部添加新的

8、元素,GetNext(POSITION&rPosition)——返回当前rPosition指向的元素,并使rPosition指向下一个元素。3.1.3内存释放在VC/MFC用CDC绘图时,频繁的刷新,屏幕会出现闪烁的现象,CPU时间占用率相当高,绘图效率极低,很容易出现程序崩溃。及时的释放程序所占用的内存资源是非常重要的。在程序中使用到的链表、刷子等占用内存资源的对象都要及时的删除。DeleteBrush,List.removeall()等。3.1.4双缓冲技术当数据量很大时,绘图可能需要几

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。