1、 面向对象编程技术 课程设计实习报告 课题名称:课题名称:子弹打飞机子弹打飞机 一、课题名称:子弹打飞机一、课题名称:子弹打飞机 二、课程设计目的与意义:二、课程设计目的与意义: (1)学会综合运用C教材中的基础理论知识,并学习专业编程中 广为借鉴的一些经典的编程模式,联系具体事例,解决实际问题,达到 深入领会理论分析解决实际问题,培养一定的编程实践能力的目的; (2)要求学生对生活中许多具体的事物抽象出类并掌握继承和派生 类、基类、虚函数和多态的概念,通过课程设计掌握C+语言程序设 计的编程思想,培养我实际操作能力和实践能力,为后续课程打下基 础。 (3)通过课程设计,加深对结构化设计思想的
2、理解,能对系统功 能进行分析,并设计合理的模块化结构; (4)通过课程设计,提高程序开发功能,能合理的清晰高效的流 程; (5)通过课程设计,训练C+语言的调试能力,培养分析问题和 解决实际问题的能力。 三、设计思路简介与流程图:三、设计思路简介与流程图: 1、子弹打飞机简介:、子弹打飞机简介: 该课程设计-子弹打飞机 写于2013年11月下旬至12月中下旬, 于2013年12月21日,在图书馆一楼书吧完成。子弹打飞机基本实现 了游戏的需求,但是由于个人能力有限,现在已经实现了飞机的平行移 动、飞机的移动速度以及子弹的飞行速度的控制,在子弹打飞机游 戏里面建立了一个满足该游戏需要的地图资源,
3、子弹的模拟运动过程以 及飞机的运动过程。地图资源其中包含地图资源坐标的建立,游戏资源 的地图清单、缓冲区控制台屏幕的处理以及游戏声音效果的产生。子弹 的模拟运动过程包括子弹的飞行轨迹的产生、绘制、消除以及障碍物碰 撞情况的分析。 子弹打飞机通过玩家发射子弹攻击飞机,当飞机子弹打中的时 候会发生消除,飞机消失,游戏共设15发子弹,子弹打完游戏结束, 玩家按下“j ”键发射子弹,每发射一发子弹,每打中一次飞机,分数 加一,一直到满100,游戏结束! 2、子弹打飞机技术:、子弹打飞机技术: 该课程设计-子弹打飞机应用了面向对象程序设计的基本内 容,由于在初创时期的思路以及后期的补充,采用了游戏的设计
4、思路, 但是没有采用到考虑用游戏引擎,所以采用了大量内容,但是归根结底 都没有脱离面向对象程序设计的内容。该课程设计使用了SDL库,以及 相关的扩展库。子弹打飞机中主要的还是在地图的建立方面,对于 这一方面我做了很长时间,去网上查了好多资料,然后才开始写的地图 构建部分。另一个主要的东西就是C+类的构建与调用、类的结构。由 于SDL资料甚少,其中有些功能还未实现,例如背景空白的图片仍然有 背景。 3、子弹打飞机运行环境、子弹打飞机运行环境: Visual Studio 2012 四、设计实现与运行:四、设计实现与运行: 1.首先使用load_image()函数对图片的格式进行转化成标准格式然后
5、 用load_files()函数加载图片。接着初始化SDL以及各类。 2、Board、Buffet、Plane、Welcome类的构建类的构建: 下表为Board、Buffet、Plane、Welcome类的成员函数一览表 public 类 构造函数 析构函数 成员函数 功能 Game Game( ); Game() void startGame() void draw_background(int x=0,int y=0) bool gamewin() bool gameover() void playing() 游戏类 Plane Plane() Plane() void draw_Pla
6、ne(COORD position) void plane_Move(char ch) void plane_shoot() bool judge_Plane(Enemy enemy) 飞机 Enemy Enemy() Enemy() void enemy_Move() int judge_Enemy(COORD bullet) void draw(int x,int y) void drawBoom(int x,int y) 敌军 Bullet Bullet() Bullet () void draw_Bullet(int x,int y) void bullet_Move() 子弹 COORD point是新指针位置坐标; COORD 是一个基于地理坐标及其他 参数,生成一个前往地图资源清单的链接,并提供一个标准化的坐标表 示法。 3、游戏主要运行界面介绍、游戏主要运行界面介绍 1、主界面:用于告知玩家游戏选择 2、游戏界面 3、游戏结束界面 五、分析与总结: