飞机大战游戏设计与实现
飞机大战游戏编程实现

飞机大战游戏编程实现近年来,随着计算机和智能手机的普及,游戏行业得到了长足的发展。
其中,飞机大战游戏作为一种具有挑战性和刺激性的射击游戏,备受玩家们的喜爱。
在本文中,将介绍一种基于编程实现的飞机大战游戏,并探讨其实现过程和相关技术。
一、项目简介飞机大战游戏是一款基于2D画面的射击游戏,玩家扮演一名飞行员,操纵战斗机进行空中战斗。
游戏的目标是尽可能击败敌机,避免被敌方攻击。
通过不断提高技术水平,玩家可以挑战更难的关卡,并解锁更强大的战机。
这款游戏为玩家提供了刺激和快乐的游戏体验。
二、游戏设计与实现1. 游戏界面设计飞机大战游戏的界面设计应当注重用户体验,界面要简洁明了,按钮和操作要易于理解和使用。
游戏的背景画面可以选择丰富多样的场景,如苍穹,夕阳山脉,或火红的战场。
此外,游戏界面还应包括游戏得分、生命值等信息的显示。
2. 飞机角色设计飞机是游戏的核心角色,其设计直接关系到游戏的乐趣和难度。
玩家可以选择喜欢的战机进行游戏,每种战机都有自己的特点和武器配置。
飞机的动画效果应该流畅,玩家操控起来应该灵活且易于掌握。
3. 敌机设计敌机是游戏的对手,其数量和种类可以根据游戏难度的设置而变化。
敌机的设计应该多样化,不同种类的敌机具有不同的攻击方式和血量。
通过合理的设计和排布,增加游戏的挑战性,使得玩家在游戏中体验到紧张刺激的射击对决。
4. 游戏操作实现通过键盘、鼠标或触控等输入设备来实现游戏的操作。
通过按键控制飞机的方向移动,实现射击攻击和躲避敌机的动作。
游戏操作的精准性和流畅度对于游戏体验至关重要,因此需要在实现过程中充分考虑。
三、游戏实现所需技术1. 编程语言游戏的编程实现可以选择使用Python、Java、C++等编程语言。
根据个人的编程经验和喜好,选择最合适的编程语言来实现游戏功能。
2. 游戏引擎游戏引擎是游戏开发的重要工具,可以大大简化游戏的开发过程。
常用的游戏引擎有Unity、Cocos2d-x等,它们提供了丰富的功能模块和开发工具,使得游戏开发变得更加高效和便捷。
基于Java的飞机大战游戏的设计与实现论文

毕业设计(论文)任务书第1页第2页第3页基于Java的飞机大战游戏的设计与实现摘要现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communication ,第四代移动通信技术)网络的深入,越来越多的IT行业开始向手机行业转移重心。
而手机行业中游戏方面的利润所占比重较大,并且手机游戏大多数则是由Java语言开发研制的。
所以我想顺应时代发展,用学到的Java知识对游戏进行一次深入的了解与创作。
Java语言在我们大学学习中占了很大的比重,其优点甚多:面向对象,可靠,安全,多平台可移植,高性能,多线程等。
面向对象是相对于c语言的面向过程来说的,在面向对象编程中,我们用Java去新建一个对象,调用其方法就能实现我们的目标,并不需要了解这个对象的方法的具体实现过程;Java的可靠安全特点体现Java不支持指针,禁止第三方访问,杜绝了外部风险。
所以使用Java开发游戏,是一个正确的选择。
大学学习即将结束,在毕业之际,我想用我4年里学习的知识为自己编写一个属于自己的游戏——飞机大战游戏,为我的大学生活画上圆满的句号。
关键词:Java游戏;面向对象;可靠安全;多线程Design And Implementation Of Airplane WargameBased On JavaAbstractNowadays, with the emergence and popularization of smart phones, plus 4 g (the 4 th Generation mobile communication, the fourth Generation mobile communication technology) the development of the Internet, more and more in the IT industry began to shift to the mobile phone industry center of gravity. Aspect of the game of the mobile phone industry profits account for a large proportion, and most mobile game is developed by Java language. So I want to keep up with the development of The Times, use Java knowledge for an in-depth understanding of the game and creation.Java language learning in our universities accounted for a large proportion of its many advantages: Object-oriented, reliable, secure, multi-platform portable, high-performance, multi-threading.Object-oriented process-oriented with respect to the terms of the c language, object-oriented programming, specifically we use Java to create a new object, call its methods will be able to achieve our goal,we do not need to know the object's method of implementation ; reliable safety features reflect Java Java does not support pointers to prohibit third-party access, to eliminate the external risk. Therefore, the use of Java development aircraft war game, is the right choice.University coming to an end, on the occasion of the graduation, I want to use my four years studying knowledge and made themselves a game of their own - Aircraft war game for my college life painting satisfactory conclusion.Keywords:Java game; object oriented; reliable and secure; multi thread目录1 引言 (1)1.1 项目背景 (1)1. 2 国内外研究现状 (3)1.3 项目主要工作 (4)1.4 本文组织结构 (6)2 开发平台与开发技术 (7)2. 1 IntelliJ IDEA简介 (7)2. 2 IntelliJ IDEA与Eclipse 、MyEclipse的比较 (8)2. 3 Java (10)3 可行性研究 (13)3. 1 技术可行性 (13)3. 2 经济可行性 (13)3. 3 操作可行性 (14)3. 4 用户使用可行性 (14)3. 5 法律可行性 (14)4 需求分析 (15)4. 1 系统需求概述 (16)4. 2 功能模块设计 (17)4.2.1 游戏状态控制功能模块 (17)4.2.2 游戏难度的调整模块 (17)4.2.3 游戏界面绘画功能模块 (17)4.2.4 玩家游戏控制功能模块 (17)4. 3 游戏难点分析 (18)4.3.1 绘图美化 (18)4.3.2 多线程技术的实现 (18)4.3.3 防碰撞问题的解决 (18)4.3.4 动画的实现 (18)5 飞机大战功能实现 (19)5.1 模型图 (19)5.2 软件功能模块 (19)5.3 游戏首页的实现 (20)5.3.1 界面实现 (20)5.3.2 流程图 (21)5.3.3 核心代码 (22)5.4 游戏开始模块的实现 (24)5.4.1 界面实现 (24)5.4.2 流程图 (25)5.4.3 核心代码 (25)5.5 发射子弹模块的实现 (27)5.5.1 界面实现 (27)5.5.2 流程图 (28)5.5.3 核心代码 (29)5.6 积分模块的实现 (33)5.6.1 界面的实现 (33)5.6.2 核心代码 (34)5.7 防碰撞逻辑 (37)5.7.1 核心代码 (37)5.8 游戏操作的实现 (39)5.8.1 核心代码 (39)5.9 特殊NPC蜜蜂 (41)6 系统测试 (42)6.1 测试的定义及其重要性 (43)6.1.1 测试的定义 (43)6.1.2 测试的重要性 (44)6.2 测试方法 (46)6.3 测试结果 (50)7 结论 (51)参考文献 (52)致谢 (54)外文文献 (55)中文翻译 (63)1 引言1.1 项目背景90后的我们,童年最开始接触电子游戏是在游戏厅,那时候的飞机大战游戏机前,往往人山人海,绚丽多彩的画面,带感操作让人沉醉不能自拔。
经典实验--飞机大战小游戏

经典实验--飞机⼤战⼩游戏·⼀、需求设计 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表⽰敌⼈战机的位置。
飞机大战课设报告

飞机大战课设报告飞机大战是一款经典的游戏,也是计算机科学中常见的课设项目之一。
在这个项目中,我们需要设计一个能够实现基本飞机大战功能的程序,包括游戏场景,敌人飞机,玩家飞机以及子弹等元素。
在本文中,我们将介绍飞机大战的实现原理以及我们的设计思路。
一、游戏场景的实现游戏场景是飞机大战中最基本的元素之一。
我们需要在程序中创建一个游戏窗口,用于展示游戏场景。
在窗口中,我们需要绘制背景图像,以及玩家飞机和敌人飞机等元素。
为了实现更加真实的游戏体验,我们还可以添加背景音乐和音效。
二、敌人飞机的实现在飞机大战中,敌人飞机是玩家需要消灭的目标。
我们需要在程序中创建敌人飞机,并控制其在游戏场景中的运动轨迹。
为了增加游戏难度,我们可以让敌人飞机在不同的高度和速度上运动,同时还可以添加不同种类的敌人飞机,例如飞行速度更快或者攻击力更强的飞机。
三、玩家飞机的实现玩家飞机是游戏中最重要的元素之一。
我们需要在程序中创建玩家飞机,并控制其在游戏场景中的运动轨迹。
为了让玩家更好地操作飞机,我们还可以添加键盘控制功能,例如向上或向下移动、向左或向右转向等。
四、子弹的实现子弹是玩家攻击敌人飞机的主要武器。
我们需要在程序中创建子弹,并控制其在游戏场景中的运动轨迹。
为了增加游戏体验,我们还可以添加不同种类的子弹,例如攻击力更强或者射程更远的子弹。
五、游戏逻辑的实现游戏逻辑是飞机大战中最重要的部分之一。
我们需要实现游戏的开始和结束逻辑,例如游戏开始前的介绍页面和游戏结束后的排名页面。
同时,在游戏过程中,我们还需要实现敌人飞机的生成和移动、玩家飞机的控制和移动、子弹的生成和移动以及碰撞检测等功能。
六、总结在本文中,我们介绍了飞机大战的实现原理以及我们的设计思路。
通过以上的步骤,我们可以实现一个基本的飞机大战游戏,并在程序中添加更多的功能和元素,以实现更加完整的游戏体验。
飞机大战不仅仅是一款游戏,更是一个综合性的课设项目,可以让我们更好地掌握计算机科学中的相关知识。
飞机大战游戏课程设计报告

飞机大战游戏课程设计报告一、课程目标知识目标:1. 学生能理解并掌握编程语言的基本语法和结构,如变量、循环、条件语句等。
2. 学生能运用所学的编程知识,设计和开发一个简单的“飞机大战”游戏。
3. 学生能理解游戏设计中的数学原理,如坐标系统、碰撞检测等。
技能目标:1. 学生能够运用编程工具(如Scratch或Python等)进行游戏设计和开发,提高编程实践能力。
2. 学生通过团队协作,培养沟通与协作能力,学会共同解决问题。
3. 学生能够运用创新思维,设计和优化游戏功能,提高游戏的可玩性和趣味性。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣和热情,激发学习动力。
2. 学生在游戏设计和开发过程中,培养自信心和成就感,增强自主学习能力。
3. 学生通过游戏设计,体会团队合作的重要性,学会尊重他人,培养良好的团队精神。
课程性质:本课程为信息技术学科,以实践为主,注重培养学生的动手能力和创新思维。
学生特点:五年级学生,对新鲜事物充满好奇心,具备一定的逻辑思维能力,喜欢动手操作。
教学要求:教师应引导学生通过自主学习、合作探究的方式,完成游戏设计和开发任务,关注学生的学习过程,及时给予反馈和指导,提高学生的综合素质。
在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容本课程教学内容依据课程目标进行选择和组织,主要包括以下几部分:1. 编程基础知识:- 变量的定义和使用- 常用的数据类型- 程序流程控制(条件语句、循环语句)- 函数的定义和调用2. 游戏设计原理:- 游戏的基本元素(玩家、敌人、子弹等)- 坐标系统与运动控制- 碰撞检测与游戏逻辑3. 编程工具与操作:- Scratch或Python编程环境的使用- 图形和角色的绘制与导入- 事件处理与声音效果的应用4. 项目实践:- 设计并开发“飞机大战”游戏- 团队合作与分工- 游戏测试与优化教学内容安排和进度:第一课时:介绍编程基础知识和游戏设计原理,让学生了解课程目标和要求。
基于JAVA的飞机大战游戏的设计与实现计算机毕业设计论文

基于Java的飞机大战游戏的设计与实现摘要飞机大战是电脑游戏发展史中早期最为经典的游戏之一,经常能在掌上游戏机、手机以及电脑上见到这个游戏。
不过,以往常见的飞机大战游戏是二维平面上的,并且大多以黑白的形式出现,当然在电脑上可以看到多种颜色的飞机大战。
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。
Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
本游戏是一个基于java的飞机大战游戏,利用Eclipse平台实现经典的飞机大战游戏。
游戏主要涉及了游戏状态控制功能、游戏难度的调整、游戏界面绘画功能、玩家游戏控制功能,最终展示了游戏开发的基本开发过程和设计思路。
关键词:飞机大战;游戏;java;Eclipse平台Design and implementation of airplane wargame based on JavaAbstractLightning is the history of the development of computer games in the early one of the most classic game, often on a handheld game consoles, mobile phone and computer to see this game. However, the previous common lightning game is two-dimensional plane, and mostly in black and white, in the course of the computer can see lightning in color.Since Java is very popular after the launch, the rapid development of the C + + language to form a strong impact. Java technology has excellent versatility, efficiency, platform portability and security, widely used in personal PC, data center, game consoles, scientific supercomputers, cell phones and the Internet, also has the world's largest developer of professional community . In the world of cloud computing and mobile Internet industry environment, Java and more have a significant advantage and broad prospects.This game is a game based on the realization of Java lightning, lightning classic game based on Eclipse platform. The game is mainly involved in the game state control function, the difficulty of the game, the game interface to adjust the drawing function, game player control function, finally shows the basic development process of game development and design ideas.Keywords: lightning; game; Java; Eclipse platform目录摘要 (i)Abstract (ii)1 引言 (1)1.1 项目背景 (1)1.2 国内外研究现状 (1)1.3 项目主要工作 (1)1.4 本文组织结构 (2)2 开发平台与开发技术 (3)2.1 Eclipse (3)2.2 Eclipse平台 (3)2.3 Java (4)2.4 Java语言的特点与优势 (5)2.5 java技术在游戏开发中的应用 (6)2.6 UML (8)3 飞机大战游戏模块设计 (9)3.1 用户需求分析 (9)3.2 可行性分析 (9)3.3 总体设计原则 (10)3.4 功能模块设计 (11)3.4.1 游戏状态控制功能 (11)3.4.2 游戏难度的调整 (11)3.4.3 游戏界面绘画功能 (11)3.4.4 玩家游戏控制功能 (11)3.5 游戏难点分析 (11)4 飞机大战功能实现 (12)4.1 游戏首页的实现 (12)4.1.1 界面实现 (12)4.1.2 流程图 (13)4.1.3 核心代码 (14)4.2 游戏开始模块的实现 (15)4.2.1 界面实现 (15)4.2.2 流程图 (16)4.2.3 核心代码 (17)4.3 发射子弹模块的实现 (18)4.3.1 界面实现 (18)4.3.2 流程图 (19)4.3.3 核心代码 (20)4.4 积分模块的实现 (22)4.4.1 界面的实现 (22)4.4.2 核心代码 (23)4.5 碰撞逻辑 (26)4.5.1 碰撞画面的实现 (26)4.5.2 核心代码 (27)4.6 游戏玩家与BOSS的血条 (28)4.6.1 玩家血条和BOSS血条的实现 (28)4.6.1 核心代码 (29)4.7 游戏操作的实现 (30)4.7.1 核心代码 (30)5 系统测试 (31)5.1 测试的定义及其重要性 (31)5.1.1 测试的定义 (31)5.1.2 测试的重要性 (31)5.2 测试实例的研究与选择 (31)5.3 测试结果 (32)总结和展望 (33)参考文献 (34)致谢 (35)外文原文 (36)中文翻译 (42)1 引言1.1 项目背景90年代的我们,对小时候的一些经典街机游戏肯定是印象深刻,像“飞机大战”、“超级玛丽”、“坦克大战”等,这些游戏伴随了我们童年,怀旧经典,重温这些经典的游戏,我选择“飞机大战”作为设计的项目。
基于移动设备的飞机大战游戏的设计与实现计算机毕业设计论文

基于移动设备的飞机大战游戏的设计与实现计算机毕业设计论文引言本文旨在介绍基于移动设备的飞机大战游戏的设计和实现计算机毕业设计论文。
该游戏旨在为用户提供轻松,有趣和富有挑战性的游戏体验。
目标该游戏的目标是实现以下功能:- 用户能够在移动设备上游玩该游戏(Android / iOS)- 游戏有多个关卡并且每个关卡有不同的背景和敌人- 游戏中的飞机能够发射子弹并且可以获取各种不同的武器和道具- 游戏有计分系统以便用户能够跟踪其得分,并在高分时记录高分- 游戏的整体设计简洁,易于使用和操作,无操作疑惑,不涉及法律问题设计和实现为实现上述目标,我们将使用以下技术和工具:- Unity3D 引擎- C# 编程语言- Adobe Photoshop / GIMP 图像编辑器- Git 版本控制系统我们将采用以下步骤来设计和实现该游戏:1. 设计游戏界面和素材:使用 Photoshop / GIMP 创建游戏中所需的所有图形素材,包括背景、飞机、敌人、武器和道具等。
2. 开发游戏逻辑:使用 Unity3D 引擎和C#编程语言来实现游戏整体逻辑,包括游戏地图设计、敌人行为逻辑、玩家的操作等。
3. 进行调试和测试:在开发过程中,测试游戏的各种场景,确认游戏反应能力、稳定性、可玩性、易用性、界面性等各方面达到预期目标。
4. 发布和推广:创建 App Store / Google Play 账户,并在这些平台上发布游戏,制定推广计划和策略,增加用户量和曝光度。
结论本文介绍了基于移动设备的飞机大战游戏的设计和实现计算机毕业设计论文。
我们希望该游戏能够成为用户日常娱乐必备的游戏之一,并通过该项目提升我们的编程和项目管理技能。
开题报告 基于Java的飞机大战游戏的设计与实现

90年代的我们,对小时候的一些经典街机游戏肯定是印象深刻,像“飞机大战超级玛丽”、“坦克大战””等,这些游戏伴随了我们童年,怀旧经典,重温这些经典的游戏,我选择“飞机大战”作为设计的项目。
而基于Java语言开发“飞机大战游戏”,也是对大学知识的一次运用,的项目不但可以重拾儿时的回忆,也同样是对大学知识的一次回顾与复习。
二、国内外现状及应用前景
Ja v a作为一门成熟的编程语言,以其简单性、可移植性和平台无关性到了广泛地应用,对于游戏开发来说,由于涉及到比较复杂的情况,开发过程很多时候是一个不断修改的过程,可以方便的修改游戏内容是十分天键的由其虚拟机特Java本身就可以用来编写游戏脚本,也有例如beanshe以无缝的和Java语言进行交互,这些都极大的方便由于Java语言的的可移植性和平台无关性等优点,如今设计开发的运用有两大是手机游戏,另一个就是Java语言在游戏开发如今正由市场正在不断的扩于苹果的17%,用Java语言开发游戏也迎来了黄金期Java语言称霸企业级应用这么多年,事实证明今Java在游戏开发领域,也正开始展露头脚。
3.2019年4月1日至4月10日,提交中期检查相关资料,参加中期检查。
4.2019年4月11日至5月10日,完成毕业设计考思科办公管理系统的实现与调试及毕业论文的攥写,提交毕业成果并申请答辩。
5.2019年5月11日至5月20日,参加毕业论文复制率检测和质量抽检。
6.2019年5月20日至5月30日,提交答辩相关资料,准备答辩事宜。
7.2019年6月1日至6月10日,按照学院安排,参加毕业论文(设计)答辩。
参考文献:
[1]明日科技.Java项目开发全程实录(第4版).北京:清华大学出版社,2018.
[2]薛华成.管理信息系统.北京:清华大学出版社,2013.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计综合实践报告
姓名学号
班级项目名称
飞机大战游戏设计与实现
实习地点计算机实验室
实习时间
2015-12-9至2015-12
-19
实习成绩指导教师签字
信息科学与工程学院
2015年12月20日
目录
1. 概述ﻩ错误!未定义书签。
1.1 关卡设置ﻩ错误!未定义书签。
1.2 敌机设置.......................... 错误!未定义书签。
1.3 战机设置......................... 错误!未定义书签。
1.4 游戏设置.......................... 错误!未定义书签。
2. 相关技术............................ 错误!未定义书签。
2.1 Windows定时器技术 (2)
2.2 双缓冲技术ﻩ错误!未定义书签。
2.3 获取矩形区域ﻩ2
3. 总体设计与详细设计ﻩ错误!未定义书签。
3.1 系统模块划分..................... 错误!未定义书签。
3.2 主要功能模块...................... 错误!未定义书签。
4. 编码实现ﻩ4
4.1 初始准备ﻩ4
4.2 战机对象ﻩ6
4.3敌机对象......................... 错误!未定义书签。
4.4 道具对象 (9)
4.5 主要内容ﻩ01
4.6 窗口显示信息...................... 错误!未定义书签。
5. 实训中遇到的主要问题及解决方法ﻩ20
5.1 产生中断及解决方案ﻩ02
5.2 图片闪烁问题及解决方案ﻩ20
6. 实训体会............................. 错误!未定义书签。
1.概述
项目:飞机大战
主要功能有以下几点:
1.1 关卡设置
本次飞机大战游戏中共设置了四个关卡,第一关的难度设置较低,仅有敌机对其进行攻击;第二关在原有的基础上增加一些补血的小道具,当积分达到一定的时候便会出现该道具,并且敌机出现的频率也比第一关高;第三关在第二关的基础上新出现了小boss,并增加了其他的道具;第四关在第三关的基础上再新出现大boss,当积分达到要求以及大boss被消灭后通关成功。
1.2敌机设置
小敌机随机出现,炮弹也随机发射,当小敌机与战机相撞或被战机的子弹击中时,小敌机消失。
当达到一定积分时,小boss出现并随机发射出与小敌机一样的炮弹,但是炮弹分三个方向发射出。
当小boss被战机的子弹击中或与战机相撞时失去5滴血。
当到达四关并且积分足够多时出现大boss,同小boss一样,当大boss与战机相撞或被战机子弹击中时失去1滴血。
除此之外,小boss和大boss上方都有血条显示,当血条消失时意味着生命消失,大boss和小boss消失。
小boss会在屏幕上随机出现和走动出了屏幕后会在屏幕的任意地方再随机出现,直至血量为0消失。
大boss则在屏幕中随机走动不出屏幕,直至血量为0消失。
1.3 战机设置
战机初始有五条生命,每条命的血量为50,所获得的积分以及其生命值、血条都在窗口的左上角显示。
在第一、二关时,按空格键战机会出现两个向上发射的炮弹,到第三、四关的时候,按空格键战机会发射三个不同方向的炮弹。
战机吃到药瓶道具时血量会增加20,但不可以超过50;吃到闪电道具时,便可放大招,放大招的次数为15。
当战机被敌方的炮弹击中或与敌方相撞时,血量减少,减少为0时生命值减1,直至生命值为0。
1.4游戏设置
进入游戏时,会有背景音乐,窗口左上角显示战机所得积分及其生命值。
根据积分情况进入不同的关卡。
游戏通关时屏幕清空,并显示通关成功,按Y可重新开始游戏。
当战机的血量以及生命值为0时,游戏失败,屏幕清空并显示游戏结束,按Y即可重新开始游戏。
2. 相关技术
2.1Windows定时器技术
Windows定时器是一种输入设备,它周期性地在每经过一个指定的时间间隔后就通知应用程序一次。
程序将时间间隔告诉windows,然后windows给你的程序发送周期性发生的WM_YIMER消息以表示时间到了。
本程序在OnCreate()函数中使用了编号为1的定时器,控制了每30毫秒刷新一次。
2.2双缓冲技术
在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样即可解决图片闪烁问题。
本程序在绘制滚动背景以及飞机,敌机等中用到了该技术。
2.3获取矩形区域
用CRect定义一个对象,利用这个对象得到要用到的矩形区域,用IntersectRect函数来判断两个源矩形是不是有重合的部分。
3. 总体设计与详细设计
3.1系统模块划分
飞机大战游戏主要模块可以说是有几个重要的类组成的。
首先是老师给出的CGameObject类,以及在其派生下的Bomb,Ball,Enemy,MyPlane,Explosion,AddBlood 等等此处不一一列举。
另外还有CObject派生的BackGround类。
如下图:
3.2 主要功能模块
主要功能是在飞机大战View类中,OnTimer函数中实现,将各个类调用,随机产生敌机,子弹的输出,爆炸的实现等等。
它的实现图可以如下实现:
启动程序
初始化游戏对象
游戏初始化
初始化绘图环境
游戏是否结束
绘制游戏对象碰撞运算积分判断
本程序所包含的功能和类模块:
游戏子系统
模块名称功能简述
应用程序对象游戏程序的加载、游戏对象的绘制、玩家的键盘事件获取
游戏对象各个游戏对象的抽象父类(CGameObject)
战机对象战机类(MyPlane)
敌机对象敌机类(Enemy, LittleBoss,Boss)
4.编码实现4.1初始准备
4.2战机对象
4.3 敌机对象
4.4道具对象
4.5 主要内容
4.6窗口显示信息
5.实训中遇到的主要问题及解决方法
5.1 产生中断及解决方案
在导入一个新的图片资源后,更改ID标识符时没有弄好,产生重复,导致中断,经过反复查找后发现该错误,将其改正过来。
因为战机击中大Boss与击中敌机部分代码原理相同,故写击中大Boss部分的代码之前粘贴击中敌机部分的代码,再更改对象名。
由于疏忽有的对象名忘了更改过来导致测试游戏过程中到了快出现大Boss击中他的时候产生中断,查证后将对象名更改正确即可。
5.2 图片闪烁问题及解决方案
在运行过程中发现无论是战机敌机等还是背景都产生剧烈的闪烁问题,非常晃眼,不知道该如何解决。
后来上网查找资料,知道利用双缓冲技术可解决图片闪烁问题。
然后仔细研
究用法,最后成功将该问题解决。
6.实训体会
从大一到大三虽然已经学了一些东西,但是利用MFC来做飞机大战还是第一次,一开始简直一头雾水不知道该从哪儿下手。
好在老师为我们讲解了其基本用法,然后我利用前几天仔细研究了VS中常见函数的用法和功能,渐渐开始上手。
了解差不多后便开始着手写,中途虽然出现了许多错误,有时候一个中断都花了我一个多小时的时间找出问题所在并解决,虽然找的过程很痛苦,但是找到并解决后充满了成就感还是令自己感到很兴奋。
经过这次实训后收获满满,不仅学会了如何使用VS,还多了一次经验和历练。