- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
軟件开发生产实习报告
软件开发生产
实习报告
姓名
李瑜 学号
1201050614 班级 信息管理与信息系统2012-1 项目名称
飞机大战 实习地点
J13-232 实习时间
2014.9.20-2014.9.30 实习成绩 指导教师签字
信息科学与工程学院
2014 年 10 月 15 日
软件开发生产实习报告
实习目的
1.1使学生全面了解软件项目实施的过程,理解软件企业对于程序员的基本素质和技术能力要求。
1.2使学生掌握C++及Window程序设计的基本技术,能够运用MFC技术及其开发环境进行小型项目的开发。
1.3重点培养学生的独立创新精神和查阅资料能力,提高其口头和书面的沟通能力。
1.4使学生掌握快速学习新知识、新技术方法,培养良好的分析问题和解决问题的能力
1.5重点提高学生的编程能力,使学生建立正确的编程理念,养成规范的编程习惯。
实习计划
一、9.20-9.21
认识MFC的基本功能,实现在windows窗体上的贴图功能;
初步利用brush绘制背景的颜色,进而掌握添加背景图片的技术;
设置定时器进行刷屏;
二、9.22-9.25
把握游戏的整体架构,了解各个类之间的继承与多态关系,对父类进行编码;
对游戏对象进行透明贴图,并实现具体的功能;
三.9.26-9.28
建立各个游戏对象的链表,并定义对象;
实现用键盘控制战机的移动,实现战机与战机导弹的链接;
实现其他游戏对象的移动与速度的设定;
实现战机导弹与敌机、子弹与战机矩形区域的重合的功能,并清除链表中需要清除的对象;
释放定时器和内存;
四、9.29-9.30
与游戏的功能与界面进行完善,添加文字显示和生命条等;
对游戏进行调试与改进。
3.实习过程
4.1 技术准备
(1)、透明贴图函数
LoadImage(CImageList?imageList,UINT?bmpID,COLORREF?crMask,int?cx,int?cy,int?nInitial)?
//可用于从 BMP 文件加载位图,主要用于将图片放入图像链表imageList中。?
m_Images.Draw(pDC,0,m_ptPos,ILD_TRANSPARENT)??
//此函数主要是将链表中的图像显示在pDC这个句柄中。
(2)、CObList链表?
CObList?list_ball;??
//主要是定义一个CObList类的一个链表对象用于存储所有的此种相关对象,易于后续的添加删除和提取数据。
POSITION?posball=NULL;?//定义指针?
posBall=list_ball.GetHeadPosition();//指针读取头结点
pBall=(CBall *)list_ball.GetNext(posBall);//指针读取下一个结点?
(3)、设置定时器?
定时器告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。本程序中使用多个定时器,分别控制不同的功能。使用SetTimer()函数设置定时器,设置系统间隔时间,在OnTimer()函数中实现响应定时器的程序。
(4)、双缓冲技术?
关于双缓冲技术主要就是利用缓存的原理进行将所有的东西都先存在一个缓冲得虚拟的区域,然后再一次性的将所有的虚拟缓存中的东西都放入实在的存储器中。
(5)、内存释放技术?
在此次实训项目中有太多的对象的生成和运用,造成了内存的极度的紧张,当游戏进行到一定的程度的时候就会出现内存溢出现象。内存释放技术的实现主要是通过释放各个满足一定条件的对象和链表来实现的,list_bomb.RemoveAt(B2);//RemoveAt从列表中删除指定位置的元素 delete pBomb;//删除敌机
(6)、获取矩形区域函数
CRect rc; //定义
GetClientRect(rc); //获取其矩形区域
获取结果为:rc.Width() //矩形区域的宽度rc.Height() //矩形区域的高度
CRect tmpRect;
tmpRect.IntersectRect(bRect,eRect))//判断两个矩形是否有交接
4.2 项目实施
4.2.1 功能需求
战机数量为1,战机的位置可通过键盘进行控制。可通过空格键控制战机进行发导弹,导弹具有一定的速度。
2、敌机出现的时间和位置均为随机,敌机的速度也是随机的,敌机发射子弹的时间也是随机的,子弹的发射具有延时性,子弹的速度具有随机性。
3、导弹和子弹及敌机碰撞爆炸同时销毁碰撞的物体,战机和子弹及敌机碰撞爆炸同时销毁碰撞的子弹及敌机,
文档评论(0)