山东科技大学飞机大战课题报告
- 格式:doc
- 大小:244.07 KB
- 文档页数:27
(完整版)飞机大战--毕业论文--初稿毕业设计(论文)题目:基于安卓平台的飞机大战游戏学院:计算机科学学院专业班级:计算机科学与技术10级2班指导教师:黄国兵职称:高级工程师学生姓名:赵兵摘要自从第一台计算机研发以来,计算机行业得到了迅速的发展,成就了很多优秀的企业,例如国外的IBM,微软,GOOGLE,ARM,苹果等,国内的腾讯,阿里巴巴,百度等,而引领计算机行业的主要因素除了硬件的支撑外,就数操作系统了,而操作系统从Dos,UNIX,LINUX Windows等PC端正在逐渐向移动端转变如:从Linux到Android;从Unix到IOS;从Windows到Windows phone,主要还是因为移动端的便携性,轻巧性深受人们的喜爱,就在这样的移动互联网浪潮中,Android系统更是高达移动端操作系统80%的占有率,真可谓前景无限,而在Android平台的应用中游戏业务又占着最大的比例,所以本次选题为基于Android的飞机大战游戏,其主要目的研究移动互联网的发展趋势,对其未来的发展有深刻清晰的认识。
本论文主要阐述以面向对象的程序开发语言Java及Eclipse为开发工具,而基于智能手机Android系统之上的飞机大战游戏。
首先简要介绍课题的研究背景、目的及意义,Android的发展历程、当前国内外的发展现状。
然后介绍了Android平台开发环境及环境搭建,最后讲述了基于Android飞机大战游戏功能的实现。
其功能模块如下:提供敌机的类模块,提供子弹的类模块,主界面模块,天空背景模块,检测子弹与敌机碰撞模块,检测,敌机与我拥有的战机碰撞木块等,除此以外还为用户提供更加人性化的设计和方便人员的操作流程。
由于Android逐渐成为智能手机技术的主导,相信其基于Android的飞机大战游戏将会受到更大的欢迎。
关键字:安卓,游戏,飞行射击,飞机ABSTRACTSince the first computer researched and development , the computer industry rapid development , that made a lot of excellent enterprise , such as : IBM , Microsoft , Google , ARM , Apple inc In a foreign country ; T encent , Alibaba Group , Baidu In the domestic . Led by the computer industry in addition to factors for operating system . And the operating system from Dos, UNIX, LINUX, Windows PC correct is gradually to mobile terminal such as: LINUX - > Android. Unix - > IOS; Windows - > Windows phone, mostly because the mobile end portability, and was deeply loved by people, in this kind of mobile Internet, in the tide of the Android system is as the application of the Android platform gamebusiness accounts for the largest proportion, so this topic is based on the Android plane war game, the development trend of mobile Internet, the main objective for its future development are clear understanding.This thesis mainly expounds Java with object oriented programming language and Eclipse as the development tool, and the plane based on the intelligent mobile phone Android war games. First briefly introduced the research background, purpose and significance, the development of Android, the current domestic and foreign development present situation.And then introduced the Android platform development environment andthe environment, finally tells the story of the realization of the function of Android plane war games. Its function module isas follows: enemy planes flying in and out of class module, provides the bullet class module, main interface module, the sky background module, detect bullet collision withthe enemy aircraft module, detection, the enemy aircraft crash with my own wood, etc., in addition also provides users with more and convenient operation. Because the Android smartphone technology Android will be more welcome.KEY WORDS: Android, Game,Flight shooter,Airplane目录第1章绪论 (1)1.1 系统研究的背景及意义 (1)1.2 国内外的发展现状 (1)1.3 主要研究的内容 (2)1.4 本文的组织结构 (2)1.5 本章小结 (3)第2章用户需求分析 (4)2.1系统的架构描述 (4)2.2 系友好的用户界面 (5)2.3技术选型 (6)2.4系统的开发环境 (6)2.5 关键技术和工具简介 (7)2.6 本章小节 (8)第3章系统概要设计 (9)3.1 模块的划分 (9)3.1.1 软件模块设计 (9)3.1.2 软件功能模块 (10)3.2 主界面设计 (12)3.3 游戏界面设计 (13)3.4 系统包及其资源规划 (13)3.4.1 系统包管理如下 (13)3.4.2 Sqlite数据库 (14)3.4.3 Runable接口以及与Thread的区别 (16)3.5 本章小结 (20)第4章系统功能的实现 (21)4.1 主界面的功能实现 (21)4.1 游戏界面的功能实现 (26)4.3 子弹类的设计 (39)4.3 敌机类的设计 (40)4.5本章小结 (42)第5章系统测试 (43)5.1 软件测试的概念 (43)5.2 系统的功能和安全测试 (43)5.3 测试总结 (45)第6章总结 (46)致谢 (47)参考文献 (48)第1章绪论1.1 系统研究的背景及意义在手机游戏的早期,大多数开发者都是想要玩转设备、学习技巧和快速攻关的狂热分子。
[在此处键入]实训报告飞机大战游戏设计与开发专业名称:班级:学号:信息科学与工程学院二零一八年七月目录1. 概述 (3)2. 相关技术 (3)2.1 碰撞检测 (3)2.2 COblist链表 (3)2.3 双缓冲技术 (4)2.4 背景滚动 (4)2.5 爆炸动画的实现 (4)2.6定时器的使用 (4)3. 总体设计与详细设计 (4)3.1 系统模块划分 (4)3.2 主要功能模块 (5)4. 编码实现 (7)5. 实训中遇到的主要问题及解决方法 (42)6. 实训体会 (43)1. 概述本次实训任务是以visual studio 2017为环境,利用MFC和C++编写一个飞机大战游戏。
其实现的主要功能为:实现游戏对象的爆炸特效,界面背景切换,文字提示和血条显示功能,奖励机制(血包、护盾、僚机、武器升级),大招和无敌模式等。
通过方向键控制战机移动,空格键发射子弹,击毁敌机可以得分。
游戏中可以按“X”开启或关闭无敌模式。
按“P”可以暂停。
游戏设有能量槽,能量不断积累,超过一半可以按“Z”键使用大招,大招为全屏攻击。
玩家收到攻击血量减少,血量为0游戏结束,显示“Game Over”,可以按“R”复活,继续游戏。
游戏设有关卡机制,每关开始一段时间后出现boss。
击败boss进入下一关。
boss有三种,难度依次增加。
第一种boss发射直线子弹,第二种boss发射散射子弹,第三种boss 两种子弹随机发射。
前三关背景图和boss固定,之后背景图与boss随机生成。
游戏中随机出现四种道具:血包:可以恢复一定的血量。
护盾:一段时间内无敌。
武器升级:升级玩家的武器,共三个等级。
僚机:获得一个僚机。
2. 相关技术2.1 碰撞检测游戏中需要处理一系列的碰撞,在处理碰撞时,可以认为每个对象是与位图大小相同的矩形,用Crect类的GetRect函数获取我方战机的矩形与敌机子弹矩形,然后新建一个矩形并且调用IntersectRect(&bRect,mRect)再用if条件语句判断,若矩形区域重叠不为空,则视为碰撞,在if语句中填写实现碰撞后的功能。
经典实验--飞机⼤战⼩游戏·⼀、需求设计 1.为检测C语⾔的学习成果,根据所学的C语⾔知识,设计程序:飞机⼤战⼩游戏; 2.⾃⾏定义变量,函数或结构体,编写源代码并进⾏编译运⾏测试; 3.根据编写的代码,⾃⾏攥写实验报告;·⼆、系统设计 1 实验题⽬: 飞机⼤战⼩游戏 2 游戏描述 飞机⼤战是⼀款惊险刺激的射击游戏,通过控制飞机的上下左右移动,发射⼦弹,击退敌机并赢得分数,玩游戏既可以锻炼⼈的反应能⼒,也可以起到放松⾝⼼的作⽤. 进⾏C语⾔⾯向对象程序设计课程设计主要是在学习C语⾔这门⾯向对象语⾔的基础上,并通过实践加深对 C语⾔⾯向对象程序设计语⾔特点的认识与理解。
同时,可以提⾼运⽤C编程语⾔解决实际问题的能⼒;锻炼实际的编程能⼒;还能提⾼调查研究、查阅技术⽂ 献、资料以及编写软件设计⽂档的能⼒。
3 功能要求 【1】实现游戏难度的选择,飞机模型以及界⾯的外观设计等的功能。
【2】实现⽅向操移动的操作和敌机随机⽣成功能。
【3】分数计算功能。
【4】游戏的开始,暂停,结束以及分数显⽰的功能。
三、概要设计 1 简要设计及所涉及的知识 运⽤⼆维数组的加减和循环来设计游戏.通过下,xy的加减实现位置的移动;然后⽤⼀系列函数,实现各功能; 2 功能描述 (1) 难度选择: 1为困难,2为⼀般,3为简单,Enter开始游戏; (2) 操作:按1235控制飞机左下右上移动,空格发射⼦弹,按8暂停,按0停⽌游戏并输出分数;; (3) 游戏的测评⽅式为计分制,每击中⼀架敌机分数加1,⽆分数限制;·四详细设计 1定义全局变量 (1) long long int speed = 0;//控制敌机的速度 (2) int position_x, position_y;//飞机的所在位置 (3) int high, width;//地图的⼤⼩ (4) int bullet_x, bullet_y;//⼦弹的位置 (5) int enemy_x, enemy_y;//敌⼈的位置 (6) int map[MAX][MAX]; (7) /*地图符号说明:0表⽰空⽩,1表⽰战机*的区域,2表⽰敌⼈战机的位置。
飞机大战游戏模块设计报
告
Final approval draft on November 22, 2020
飞机大战游戏
模块设计报告
青岛软件园软件人力资源服务有限公司
实训服务中心
版本历史
目录
0. 文档介绍
文档目的
指导模块编码人员编码。
文档范围
模块功能介绍及实现要求读者对象
模块编码人员
参考文献
术语与缩写解释
1. 模块命名规则
2. 模块汇总
模块汇总表
UML活动图
类体系
3. 游戏规则子系统人工智能
3游戏对象子系统应用程序对象
游戏对象
战机对象
敌机对象
导弹对象
炸弹对象
爆炸对象
文字对象。
毕业设计(论文)题目:基于安卓平台的飞机大战游戏学院:计算机科学学院专业班级:计算机科学与技术10级2班指导教师:黄国兵职称:高级工程师学生:兵学号:***********摘要自从第一台计算机研发以来,计算机行业得到了迅速的发展,成就了很多优秀的企业,例如国外的IBM,微软,GOOGLE,ARM,苹果等,国的腾讯,阿里巴巴,百度等,而引领计算机行业的主要因素除了硬件的支撑外,就数操作系统了,而操作系统从Dos,UNIX,LINUX Windows等PC端正在逐渐向移动端转变如:从Linux 到Android;从Unix到IOS;从Windows到Windows phone,主要还是因为移动端的便携性,轻巧性深受人们的喜爱,就在这样的移动互联网浪潮中,Android系统更是高达移动端操作系统80%的占有率,真可谓前景无限,而在Android平台的应用中游戏业务又占着最大的比例,所以本次选题为基于Android的飞机大战游戏,其主要目的研究移动互联网的发展趋势,对其未来的发展有深刻清晰的认识。
本论文主要阐述以面向对象的程序开发语言Java及Eclipse为开发工具,而基于智能手机Android系统之上的飞机大战游戏。
首先简要介绍课题的研究背景、目的及意义,Android的发展历程、当前国外的发展现状。
然后介绍了Android 平台开发环境及环境搭建,最后讲述了基于Android飞机大战游戏功能的实现。
其功能模块如下:提供敌机的类模块,提供子弹的类模块,主界面模块,天空背景模块,检测子弹与敌机碰撞模块,检测,敌机与我拥有的战机碰撞木块等,除此以外还为用户提供更加人性化的设计和方便人员的操作流程。
由于Android 逐渐成为智能手机技术的主导,相信其基于Android的飞机大战游戏将会受到更大的欢迎。
关键字:安卓,游戏,飞行射击,飞机ABSTRACTSince the first computer researched and development , the computer industry has been rapid development , that made a lot of excellent enterprise , such as : IBM , Microsoft , Google , ARM , Apple inc In a foreign country ; Tencent , Alibaba Group , Baidu In the domestic . Led by the computer industry in addition to hardware support, the main factors for operating system . And the operating system from Dos, UNIX, LINUX, Windows PC correct is gradually to mobile terminal such as: LINUX - > Android. Unix - > IOS; Windows - > Windows phone, mostly because the mobile end portability, and was deeply loved by people, in this kind of mobile Internet, in the tide of the Android system is as high as 80% of mobile terminal operating system share, really unlimited prospects, and in the application of the Android platform game business accounts for the largest proportion, so this topic is based on the Android plane war game, the development trend of mobile Internet, the main objective for its future development are clear understanding.This thesis mainly expounds Java with object oriented programming language and Eclipse as the development tool, and the plane based on the intelligent mobile phone Android war games. First briefly introduced the research background, purpose and significance, the development of Android, the current domestic and foreign development present situation. And then introduced the Android platform development environment and the environment, finally tells the story of the realization of the function of Android plane war games. Its function module is as follows: enemy planes flying in and out of class module, provides the bullet class module, main interface module, the sky background module, detect bullet collision with the enemy aircraft module, detection, the enemy aircraft crash with my own wood, etc., in addition also provides users with more humanized design and convenient operation. Because the Android smartphone technology has become the dominant gradually, believe that the planewar game based on Android will be more welcome.KEY WORDS: Android, Game,Flight shooter,Airplane目录第1章绪论 (1)1.1 系统研究的背景及意义 (1)1.2 国外的发展现状 (1)1.3 主要研究的容 (1)1.4 本文的组织结构 (1)1.5 本章小结 (2)第2章用户需求分析 (3)2.1系统的架构描述 (3)2.2 系友好的用户界面 (4)2.3技术选型 (5)2.4系统的开发环境 (5)2.5 关键技术和工具简介 (6)2.6 本章小节 (7)第3章系统概要设计 (8)3.1 模块的划分 (8)3.1.1 软件模块设计 (8)3.1.2 软件功能模块 (9)3.2 主界面设计 (11)3.3 游戏界面设计 (12)3.4 系统包及其资源规划 (12)3.4.1 系统包管理如下 (12)3.4.2 Sqlite数据库 (13)3.4.3 Runable接口以及与Thread的区别 (15)3.5 本章小结 (19)第4章系统功能的实现 (20)4.1 主界面的功能实现 (20)4.1 游戏界面的功能实现 (25)4.3 子弹类的设计 (37)4.3 敌机类的设计 (38)4.5本章小结 (40)第5章系统测试 (41)5.1 软件测试的概念 (41)5.2 系统的功能和安全测试 (41)5.3 测试总结 (43)第6章总结 (44)致 (45)参考文献 (46)第1章绪论1.1 系统研究的背景及意义在手机游戏的早期,大多数开发者都是想要玩转设备、学习技巧和快速攻关的狂热分子。
一、概述飞机大战是一款经典的射击游戏,玩家控制飞机在屏幕上不断向上飞行,同时射击敌机,躲避敌机的攻击。
Python作为一种广泛应用于软件开发的高级编程语言,可以用来开发各种类型的游戏。
本报告将详细介绍使用Python语言设计飞机大战程序的过程和实现方法。
二、程序设计目标1. 实现一个具有玩家飞机和敌机的基本射击游戏;2. 能够控制玩家飞机的移动和发射子弹;3. 敌机能够不断向下移动,并且发射子弹攻击玩家飞机;4. 实现游戏得分的计算和显示;5. 添加背景音乐和游戏音效。
三、程序设计思路1. 确定游戏窗口大小和背景图片;2. 创建玩家飞机和敌机的类,并实现它们的移动和碰撞检测;3. 实现玩家飞机的发射子弹和敌机的发射子弹;4. 添加得分和生命值的显示;5. 引入背景音乐和游戏音效。
四、程序设计过程1. 导入pygame模块,并初始化pygame;2. 设置游戏窗口大小和标题,并加载背景图片;3. 创建玩家飞机和敌机的类,实现它们的移动和碰撞检测;4. 实现玩家飞机的发射子弹和敌机的发射子弹;5. 添加得分和生命值的显示;6. 引入背景音乐和游戏音效。
五、程序设计实现1. 导入pygame模块,并初始化pygame:import pygamepygame.init()2. 设置游戏窗口大小和标题,并加载背景图片:SCREEN_WIDTH = 480SCREEN_HEIGHT = 600screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))pygame.display.set_caption('飞机大战')background = pygame.image.load('background.jpg').convert()3. 创建玩家飞机和敌机的类,实现它们的移动和碰撞检测:class Plane(pygame.sprite.Sprite):def __init__(self, image, speed):pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load(image)self.rect = self.image.get_rect()self.speed = speeddef move(self):passdef shoot(self):passdef collide(self):pass4. 实现玩家飞机的发射子弹和敌机的发射子弹:class Bullet(pygame.sprite.Sprite):def __init__(self, image, speed, position): pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load(image) self.rect = self.image.get_rect()self.speed = speedself.rect.midbottom = positiondef move(self):pass5. 添加得分和生命值的显示:class Score(pygame.sprite.Sprite):def __init__(self):pygame.sprite.Sprite.__init__(self)self.score = 0self.font = pygame.font.Font(None, 36)def update(self):self.text = 'Score: d' self.scoreself.image = self.font.render(self.text, 1, (255, 0, 0))self.rect = self.image.get_rect()self.rect.topleft = [10, 10]6. 引入背景音乐和游戏音效:pygame.mixer.init()pygame.mixer.music.load('background_music.mp3') pygame.mixer.music.play(-1, 0.0)bullet_sound = pygame.mixer.Sound('bullet.wav')enemy_sound = pygame.mixer.Sound('enemy.wav')六、程序设计实现结果1. 程序设计完成后,玩家可以通过键盘控制飞机的移动和发射子弹;2. 敌机会不断向下移动,并发射子弹攻击玩家飞机;3. 游戏窗口中显示玩家的得分和生命值;4. 背景音乐和游戏音效能够正常播放。
太原理工大学毕业设计(论文)任务书第1页毕业设计(论文)题目:基于Android的飞机大战游戏的设计与实现毕业设计(论文)要求及原始数据(资料):一.项目简介随着手机技术的发展,现在手机的功能已不仅仅是简单的接打电话、收发短信了。
手机用户希望在工作、学习之余通过手机进行网上购物,多媒体浏览,以及游戏娱乐。
因此,,我开发出一套适合大众并具有很强的娱乐性和交互性的飞机小游戏。
二.项目要求1.熟练掌握Android开发的技巧,训练编写Android程序的能力;2.实践整个Android游戏开发过程。
3.设计并实现基于Android的飞机大战游戏程序;4.深入分析理解实现该游戏所需要的编程思想;5. 熟悉SQlite数据库编程基本操作;6. 深入练习进行软件调试和测试的能力;7. 要求程序反应迅速,良好的与用户进行交互;8. 要求界面设计美观大方,赏心悦目,能够吸引用户;7.训练检索文献资料和利用文献资料的能力;8.训练撰写技术文档与学位论文的能力。
三.项目计划总计17周,具体进度安排如下:1.1-3周,分析系统开发背景,研究系统开发目的,做出系统的可行性分析和需求分析报告;2.4-6周,根据可行性分析和需求分析报告,完成系统的总体设计;3.6-12周,完善系统的功能模块,设计和初步实现系统开发;4.13-14周,完整进行系统调试和测试,撰写测试报告。
5. 14-16周,整理相关材料,着手撰写论文,进行系统验收。
6. 17-19周,装订论文,进行论文答辩。
毕业设计(论文)主要内容:1.系统开发背景和目的:现阶段,生活节奏加快,人们没有足够时间去休闲娱乐,需求一款上手快,可玩性高,随时随地可玩的小游戏;2.系统可行性分析:Eclipse是一个开放的源代码的、基于Java的可扩展开发平台。
Android专门针对Eclipse开发做了ADT(Android Developer Tools)开发插件。
该系统采用Eclipse集成Android ADT为开发平台进行APP开发。
飞机⼤战游戏的设计与开发毕业论⽂飞机⼤战游戏的设计与开发毕业论⽂⽬录第1章绪论 (1)1.1 系统研究的背景及意义 (1)1.2 国内外的发展现状 (1)1.4 本⽂的组织结构 (2)1.5 本章⼩结 (2)第2章游戏的相关知识和系统开发平台的阐述 (3)2.1游戏基本流程概述 (3)2.2游戏系统元素阐述 (4)2.3开发环境和相关技术的概述 (5)2.3.1 开发环境 (5)2.3.2 相关技术 (5)2.4本章⼩结 (10)第3章游戏分析 (11)3.1 ⽤户功能需求分析 (11)3.2 系统性能要求 (12)3.3可⾏性分析 (12)3.4本章⼩结 (13)第4章游戏设计 (14)4.1游戏整体设计 (14)4.1.1 整体结构 (14)4.1.2 游戏对战规则 (14)4.2游戏界⾯设计 (15)4.2.1游戏起始界⾯设计 (15)4.2.2游戏运⾏界⾯设计 (17)4.2.3游戏结束界⾯设计 (17)4.3游戏功能设计 (18)4.3.1双缓冲绘图 (19)4.3.2功能实现 (19)4.4本章⼩结 (26)第5章系统测试 (27)5.1软件测试基础理论 (27)5.1.1 软件测试定义 (27)5.1.2 软件测试基本概念 (27)5.2软件测试⽬的 (27)5.3软件测试⽅法分类 (28)5.3.1 静态测试与动态测试 (28)5.3.2 ⿊盒⽩盒与⽩盒测试 (28)5.3.3 单元测试、集成测试、系统测试、验证测试和确认测试 (29)5.4论坛测试 (29)5.4.1 测试⽤例设计要求 (29)5.5测试⽤例 (30)5.6测试结果 (30)5.6本章⼩结 (31)第6章⼯作总结 (32)致谢 (33)参考⽂献 (34)附录1 (35)第1章绪论第1章绪论1.1 系统研究的背景及意义当今社会是⼀个信息社会,⼀个知识经济的年代。
⾃从世界上第⼀台计算机ENIAC于1946年问世到现在,计算机业飞速发展。
飞机游戏课题研究报告飞机游戏课题研究报告一、引言飞机游戏是一种电子游戏,可以模拟飞行器在空中飞行的体验。
它可以提供给玩家真实的飞行体验,并让玩家在游戏中进行各种任务和挑战,如驾驶飞机进行战斗、进行救援任务等。
本报告将研究飞机游戏的发展历史、游戏机制以及市场前景。
二、发展历史飞机游戏的发展可以追溯到20世纪80年代。
当时,初代飞机游戏如《空中战争》等在街机和家用游戏机上受到极大的欢迎。
随着个人电脑的普及,飞机游戏也进入了PC平台,如《微软飞行模拟器》系列等。
随着技术的进步,现代飞机游戏逐渐实现了逼真的画面和物理模拟。
三、游戏机制飞机游戏的核心机制包括操控飞机进行飞行和战斗、任务和挑战设计以及多人游戏模式。
1. 操控飞机进行飞行和战斗飞机游戏通过操控飞机的方向、速度和攻击来进行飞行和战斗。
玩家可以使用键盘、游戏手柄或专门的飞行摇杆等设备来操控飞机,提高游戏的真实感。
2. 任务和挑战设计飞机游戏通常设有各种任务和挑战,玩家需要完成这些任务和挑战来获得奖励和升级。
任务包括飞行训练、救援行动、战斗任务等,挑战则包括飞行技巧的测试和击落敌机的竞赛等。
3. 多人游戏模式飞机游戏还提供多人游戏模式,玩家可以与其他玩家进行实时对战或协作任务。
多人游戏模式可以增强游戏的可玩性和互动性,带来更好的游戏体验。
四、市场前景飞机游戏市场潜力巨大,具有广阔的发展前景。
随着技术的不断进步,飞机游戏的画面和物理模拟将会更加逼真,玩家的游戏体验也将更加丰富。
此外,随着虚拟现实技术的发展,飞机游戏还可以与虚拟现实技术结合,为玩家提供更加沉浸式的飞行体验。
然而,飞机游戏也面临着一些挑战。
首先,游戏的难度和学习曲线较高,对于新手玩家来说可能会有一定的学习成本。
其次,飞机游戏需要强大的计算性能和显卡支持,对硬件要求较高。
最后,市场上飞机游戏的竞争也较为激烈,游戏开发商需要通过创新的游戏机制和内容来吸引玩家。
综上所述,飞机游戏作为一种电子游戏具有广阔的发展前景。
实训报告飞机大战游戏设计与开发王上前专业名称:物联网工程班级:物联网11级1班学号:20111052131信息科学与工程学院二零一二年十二月目录1. 概述 (03)1.1 实训项目简介 (03)1.2 实训功能说明 (03)1.2.1 基本功能 (03)2. 相关技术 (03)2.1 基类的使用 (03)2.2 Windows定时器技术 (03)2.3获取矩形区域 (03)2.4内存释放 (04)3. 总体设计与详细设计 (04)3.1 系统模块划分 (04)3.2 主要功能模块 (05)4. 编码实现 (20)5. 实训中遇到的主要问题及解决方法 (21)6. 实训体会 (21)1. 概述1.1 实训项目简介本次实训项目是做一个飞机大战的游戏,完成一个界面简洁流畅、游戏方式简单,玩起来易于上手的桌面游戏。
该飞机大战项目运用的主要技术即是MFC编程中的一些函数、链表思想以及贴图技术。
1.2 实训功能说明1.2.1 基本功能(1)设置一个战机具有一定的速度,通过键盘,方向键可控制战机的位置,空格键发射子弹。
(2)界面中敌机出现的位置为随机的。
(3)对于随机产生的敌机和敌机炸弹,若超过矩形区域,则释放该对象。
(4)添加爆炸效果,包括战机子弹打中敌机爆炸、敌机炸弹打中战机爆炸、战机与敌机相撞爆炸以及战机子弹与敌机炸弹相撞爆炸四种爆炸效果。
且爆炸发生后敌机、子弹、炸弹均消失。
2. 相关技术2.1基类的使用在飞机大战的游戏中用到了很多基类,例如MyPlane、Bomb等等,这样使得游戏的实现更加规范,有效性。
通过主函数的调用,实现了很多功能。
2.2 Windows定时器技术Windows定时器是一种输入设备,它周期性地在每经过一个指定的时间间隔后就通知应用程序一次。
程序将时间间隔告诉Windows,然后Windows给您的程序发送周期性发生的WM_TIMER消息以表示时间到了。
本程序中使用多个定时器,分别控制不同的功能。
[键入文字]飞机大战游戏 体系结构设计报告青岛软件园软件人力资源服务有限公司实训服务中心版本历史目录0. 文档介绍 (4)0.1文档目的 (4)0.2文档范围 (4)0.3读者对象 (4)0.4参考文献 (4)0.5术语与缩写解释 (4)1. 系统概述 (5)2. 设计约束 (5)3. 设计策略 (5)4. 系统总体结构 (5)5. 子系统的结构与功能 (5)5.1人工智能子系统 (5)5.2游戏对象子系统 (6)6. 开发环境的配置 (7)7. 运行环境的配置 (7)8. 测试环境的配置 (7)0. 文档介绍0.1 文档目的为模块设计人员提供飞机大战游戏模块设计依据。
0.2 文档范围本文介绍了飞机大战游戏的体系结构。
0.3 读者对象模块设计人员0.4 参考文献无0.5 术语与缩写解释1. 系统概述飞机大战游戏是基于Windows桌面的射击类游戏。
做为一个游戏首先要保证游戏本身的规则,而这个版本的一个重要的功能就是其2D的展现形式。
2. 设计约束(1)需求约束。
体系结构设计人员从《软件需求规格说明书》)中提取需求约束✧软件、硬件环境(包括运行环境和开发环境)的约束✧用户界面的约束✧软件质量的约束,如正确性、可靠性、效率(性能)、易用性。
(2)隐含约束。
有一些假设或依赖并没有在需求文档中明确指出,但可能会对系统设计产生影响,设计人员假设对用户熟悉简单的Windows游戏的玩法。
3. 设计策略无。
4. 系统总体结构有两个主要的部分组成,分别是规则子系统、游戏对象子系统。
系统的总体结构图如下:5. 子系统的结构与功能5.1 规则子系统该子系统主要是实现飞机大战各项游戏规则。
实现了需求中的游戏规则。
组成结构如下图所示:这个系统包含1个重要的模块,人工智能,它实现了敌机对战机的攻击以及游戏对象碰撞监测规则,其实实现的是代表计算机方与玩家进行对战。
✧攻击规则⏹敌机在战机上方或下方时发射炸弹,炸弹从下至上或从上至下射向战机⏹攻击时发出声音✧碰撞规则⏹导弹或炸弹本身的矩形区域和敌机或战机的矩形区域相交时,表示导弹或炸弹射中了战机或敌机⏹战机被炸毁,游戏结束。
目录1. 概述 (3)1.1 实训项目简介 (3)1.2 实训功能说明 (3)1.2.1 基本功能 (3)1.2.2 附加功能 (3)2. 相关技术 (4)2.1 Windows定时器技术 (4)2.2 透明贴图实现技术 (4)2.3 CObList链表 (5)2.4获取矩形区域 (6)2.5使用AfxMessageBox显示游戏过程中的提示信息 (7)2.6内存释放 (7)2.7 CImageList处理爆炸效果 (7)2.8对话框的应用 (8)3. 总体设计与详细设计 (8)3.1 系统模块划分 (8)3.2 主要功能模块 (9)3.2.1 系统对象类图 (9)3.2.2 系统主程序活动图 (10)3.2.3 系统部分流程图 (11)4. 编码实现 (13)4.1 绘制游戏背景位图程序 (13)4.2 飞机大战游戏对象的绘制程序 (14)4.3 飞机大战游戏对象战机位置的动态控制 (18)4.4 飞机大战游戏对象之间的碰撞实现 (21)4.5 游戏界面输出当前信息 (22)5. 项目程序测试 (24)5.1战机移动及子弹发射模块测试 (24)5.2 敌机及炸弹模块测试 (20)5.3 爆炸模块测试 (20)6. 实训中遇到的主要问题及解决方法 (25)7. 实训体会 (25)1. 概述1.1 实训项目简介本次实训项目是做一个飞机大战的游戏,应用MFC编程,完成一个界面简洁流畅、游戏方式简单,玩起来易于上手的桌面游戏。
该飞机大战项目运用的主要技术即是MFC编程中的一些函数、链表思想以及贴图技术。
1.2 实训功能说明1.2.1 基本功能(1)设置一个战机具有一定的速度,通过键盘,方向键可控制战机的位置,空格键发射子弹。
(2)界面中敌机出现的位置,以及敌机炸弹的发射均为随机的,敌机与敌机炸弹均具有一定的速度,且随着关卡难度的增大,数量和速度均增加。
(3)对于随机产生的敌机和敌机炸弹,若超过矩形区域,则释放该对象。
程序设计综合实践报告 姓名 学号 班级 计算机科学与技术 项目名称 飞机大战游戏设计实验 实习地点 计算机实验室 实习时间 xxxx-x-x至xxxx-x-x 实习成绩 指导教师签字
信息科学与工程学院 xxxx年 x月xx日 2
目 录 1. 概述 .................................................. 3 2. 相关技术 .............................................. 3 2.1CObList链表 ....................................... 4 2.2获取矩形区域函数 ................................... 4 2.3子弹随武器等级改变 ................................. 4 2.4弹出按钮函数....................................... 5 2.5字体的输出 ........................................ 6 2.6游戏模式切换的实现 ................................. 6 2.7设置定时器 ........................................ 7 2.8双缓冲技术 ........................................ 7 2.9滚屏的实现 ........................................ 7 3. 总体设计与详细设计 .................................... 8 3.1 系统模块划分 ...................................... 8 3.2 主要功能模块 ...................................... 9 4. 编码实现 ............................................. 10 5. 实训中遇到的主要问题及解决方法 ....................... 27 6. 实训体会 ............................................ 277 3
1. 概述 功能介绍: 一、非功能性要求 1. 程序目的。单向(纵版)飞行设计游戏,要求游戏者能持续玩半小时以上。分辨率为520*740。 2. 稳定性。程序无错、运行稳定、适应多种windows系统,游戏运行顺畅。 3. 可玩性高。程序角色丰富,物品多。关卡多,难度安排合理,游戏速度合理,屏幕上的飞机子弹数目合理。界面素材需能清楚区分各种角色,自己搭配的素材要求视觉效果融。 二、功能性要求 1.本机。 本机有血量。有两种形态。普通形态下有4中变形。暴走形态下为动态人马状。 初始血量为10。初始武器等级为1。初始移动速度为1。 2. (本机)所放导弹。 本机所放的导弹随武器等级提升而提升。发射导弹有间歇时间。本机为暴走形态时间歇时间变短。 大招导弹(审判之力):全屏爆炸,消灭除BOSS外所有敌机单位,掉落大量物品包。 3. 物品 物品仅有打落的敌机和boss掉落,敌机掉落一个,boss可掉落多个。每个物品只负责加一种属性,每次只负责加1级。
物品1:本机进入暴走形态。导弹密度发射频率移动速度大幅增强。但不是无敌。 物品2:本机武器设备得到提升。导弹密度提升。最高为5。 物品3:本机获得invincible保护罩,无敌。 物品4:本机血量+1。血量最高为10。 物品5:本机引擎设备得到提升。速度上升。最高为9。 物品6:本机大招(审判之力)数量+1。 4. boss和敌机 所有敌机和boss均从飞机的飞行前方出现。 敌机有两种:enemy 和 elite BOSS 有不同形态,每个BOSS血量比前一个大幅提升。
5. 敌机子弹(含boss子弹)
飞行路径:敌机均为从上到下,飞出屏幕即消失。boss为屏幕中盘旋飞行,直到消灭。 Enemy 子弹直线飞行。Elite 子弹扩散飞行。 BOSS子弹: Laser:跟踪本机,但本机可以躲避。 4
Mire: 直线发射。 Track:缓慢飞行,碰撞体积大。
2. 相关技术
2.1CObList链表 在本程序中使用了CObList链表来分别存储敌机,炸弹,导弹,爆炸效果。CobList类似于一个双向链表,POSITION类型的变量为链表的键。使用POSITION变量,既可以作为链表循环中的循环变量,也可以作为标记某个位置的标签。我们可以通过获得某元素的POSITION来访问它。 class CObList : public CObject //枚举类型 enum ObjType{ enEnemy, enBomb, enBall, enExplosion, enUpup, enElite}; CObList m_ObjList[7]; POSITION pos1,pos2; //定义指针 for( pos1 = m_ObjList[i].GetHeadPosition(); ( pos2 = pos1 ) != NULL ; ) //遍历链表 CGameObject* pObj = (CGameObject*)m_ObjList[i].GetNext( pos1 );
2.2获取矩形区域函数 以myplane为例: CRect mRect1 = m_pMe->GetRect(); CRect GetRect(){ return CRect(m_ptPos, CPoint(m_ptPos.x + PLANE_WIDTH, m_ptPos.y + PLANE_HEIGHT)); }
2.3子弹随武器等级改变 if (boom_my == 1 && sss_my==0) m_ObjList[enBomb].AddTail(new CBomb(pt.x + 41, pt.y + 10, 0, 10 * bz, 3)); if(boom_my>=2 && sss_my==0) { m_ObjList[enBomb].AddTail(new CBomb(pt.x + 25, pt.y + 10, 0, 10 * bz, 3)); m_ObjList[enBomb].AddTail(new CBomb(pt.x + 55, pt.y + 10, 0, 10 * bz, 3)); } if (boom_my >= 3 || sss_my){ if (sss_my) { m_ObjList[enBomb].AddTail(new CBomb(pt.x + 48, pt.y + 10, -2 * bz, 8 * bz, (sss_my > 0))); m_ObjList[enBomb].AddTail(new CBomb(pt.x + 31, pt.y + 10, 2 * bz, 8 * bz, (sss_my > 0))); } else { 5
m_ObjList[enBomb].AddTail(new CBomb(pt.x + 48, pt.y + 10, -2 * bz, 8 * bz, 4)); m_ObjList[enBomb].AddTail(new CBomb(pt.x + 31, pt.y + 10, 2 * bz, 8 * bz, 4)); }
} if (boom_my >= 4 || sss_my){ if(sss_my) { m_ObjList[enBomb].AddTail(new CBomb(pt.x + 41, pt.y + 10, -1 * bz, 8 * bz, (sss_my>0))); m_ObjList[enBomb].AddTail(new CBomb(pt.x + 41, pt.y + 10, 1 * bz, 8 * bz, (sss_my>0))); } else { m_ObjList[enBomb].AddTail(new CBomb(pt.x + 41, pt.y + 10, -1 * bz, 8 * bz,3)); m_ObjList[enBomb].AddTail(new CBomb(pt.x + 41, pt.y + 10, 1 * bz, 8 * bz, 3)); }
} if (boom_my >= 5 || sss_my){ if(sss_my) m_ObjList[enBomb].AddTail(new CBomb(pt.x + 41, pt.y + 10, 0, 10 * bz, (sss_my > 0))); if (sss_my == 0){ m_ObjList[enBomb].AddTail(new CBomb(pt.x + 41, pt.y + 10, 0, 10 * bz, 3)); m_ObjList[enBomb].AddTail(new CBomb(pt.x + 90, pt.y , 0, 15 * bz, 2)); m_ObjList[enBomb].AddTail(new CBomb(pt.x - 15, pt.y , 0, 15 * bz, 2)); } else{ m_ObjList[enBomb].AddTail(new CBomb(pt.x + 90, pt.y, -2 * bz, 15 * bz, 5)); m_ObjList[enBomb].AddTail(new CBomb(pt.x - 15, pt.y, -2 * bz, 15 * bz, 5)); m_ObjList[enBomb].AddTail(new CBomb(pt.x + 90, pt.y, 2 * bz, 15 * bz, 5)); m_ObjList[enBomb].AddTail(new CBomb(pt.x - 15, pt.y, 2 * bz, 15 * bz, 5)); }
} 2.4弹出按钮函数 void CPlaneGameView::OnInitialUpdate() { CView::OnInitialUpdate(); //初始化游戏 m_button[0] = new CButton(); m_button[1] = new CButton();