欢迎来到天天文库
浏览记录
ID:12815950
大小:646.50 KB
页数:20页
时间:2018-07-19
《c++课程设计报告子弹打飞机》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.安徽工业大学《面向对象编程技术》课程设计实习报告课题名称:子弹打飞机专业:软件工程班级:软124姓名:刘在兵学号:129074269指导教师:李伟2013年12月26日..一、课题名称:子弹打飞机二、课程设计目的与意义:(1)学会综合运用C++教材中的基础理论知识,并学习专业编程中广为借鉴的一些经典的编程模式,联系具体事例,解决实际问题,达到深入领会理论分析解决实际问题,培养一定的编程实践能力的目的;(2)要求学生对生活中许多具体的事物抽象出类并掌握继承和派生类、基类、虚函数和多态的概念,通过课程设计掌握《
2、C++语言程序设计》的编程思想,培养我实际操作能力和实践能力,为后续课程打下基础。(3)通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构;(4)通过课程设计,提高程序开发功能,能合理的清晰高效的流程;(5)通过课程设计,训练C++语言的调试能力,培养分析问题和解决实际问题的能力。三、设计思路简介与流程图:1、子弹打飞机简介:该课程设计--《子弹打飞机》写于2013年11月下旬至12月中下旬,于2013年12月21日,在图书馆一楼书吧完成。《子弹打飞机》基本实现了游戏的需求
3、,但是由于个人能力有限,现在已经实现了飞机的平行移动、飞机的移动速度以及子弹的飞行速度的控制,在《子弹打飞机》游戏里面建立了一个满足该游戏需要的地图资源,子弹的模拟运动过程以及飞机的运动过程。地图资源其中包含地图资源坐标的建立,游戏资源的地图清单、缓冲区控制台屏幕的处理以及游戏声音效果的产生。子弹的模拟运动过程包括子弹的飞行轨迹的产生、绘制、消除以及障碍物碰撞情况的分析。《子弹打飞机》通过玩家发射子弹攻击飞机,当飞机子弹打中的时候会发生消除,飞机消失,游戏共设15..发子弹,子弹打完游戏结束,,玩家按下“j”
4、键发射子弹,每发射一发子弹,,每打中一次飞机,分数加一,一直到满100,游戏结束!2、子弹打飞机技术:该课程设计--《子弹打飞机》应用了面向对象程序设计的基本内容,由于在初创时期的思路以及后期的补充,采用了游戏的设计思路,但是没有采用到考虑用游戏引擎,所以采用了大量内容,但是归根结底都没有脱离面向对象程序设计的内容。该课程设计使用了SDL库,以及相关的扩展库。《子弹打飞机》中主要的还是在地图的建立方面,对于这一方面我做了很长时间,去网上查了好多资料,然后才开始写的地图构建部分。另一个主要的东西就是C++类的构
5、建与调用、类的结构。由于SDL资料甚少,其中有些功能还未实现,例如背景空白的图片仍然有背景。3、子弹打飞机运行环境:VisualStudio2012四、设计实现与运行:1.首先使用load_image()函数对图片的格式进行转化成标准格式然后用load_files()函数加载图片。接着初始化SDL以及各类。2、Board、Buffet、Plane、Welcome类的构建:下表为Board、Buffet、Plane、Welcome类的成员函数一览表public类构造函数析构函数成员函数功能GameGame(){
6、};~Game(){}voidstartGame()voiddraw_background(intx=0,inty=0)boolgamewin()boolgameover()voidplaying()游戏类..PlanePlane(){}~Plane(){}voiddraw_Plane(COORDposition)voidplane_Move(charch)voidplane_shoot()booljudge_Plane(Enemyenemy)飞机EnemyEnemy(){}~Enemy(){}voidene
7、my_Move()intjudge_Enemy(COORDbullet[])voiddraw(intx,inty)voiddrawBoom(intx,inty)敌军BulletBullet(){}~Bullet(){}voiddraw_Bullet(intx,inty)voidbullet_Move()子弹COORDpoint是新指针位置坐标;COORD是一个基于地理坐标及其他参数,生成一个前往地图资源清单的链接,并提供一个标准化的坐标表示法。3、游戏主要运行界面介绍1、主界面:用于告知玩家游戏选择..2、游
8、戏界面..3、游戏结束界面..五、分析与总结:1、static局部对象在函数调用结束时对象并不释放局部对象,因此也不调用析构函数,只在main函数结束或调用exit函数结束程序时,才调用static局部对象的析构函数;2、在应用new和delete时报错许多,因为对new和delete的用法不是很好,所以导致错误连连,以至于只在Buffet文件中用了此用法。3、在类的成员调用时,因为成员变量为私有变
此文档下载收益归作者所有