坦克大战游戏设计与制作
- 格式:doc
- 大小:175.50 KB
- 文档页数:19
目录第一章引言 ............................................................................................ - 3 -1.1编写目的.. (3)1.2项目背景 (3)1.3定义 (3)1.3.1 专门术语 (3)1.3.2 缩写 (3)1.4参考资料 (4)第二章总体设计 (5)2.1需求规定 (5)2.1.1 对功能的规定 (5)2.1.2 对性能的规定 (5)2.1.3 输入/输出要求 (5)2.1.4 数据管理能力要求 (5)2.1.5 故障处理要求 (5)2.2其它专门要求 (5)2.3运行环境 (6)2.4功能需求与程序模块的关系 (6)2.5技术架构 (7)第三章接口设计 (8)3.1外部接口 (8)3.1.1 用户界面 (8)3.1.2 软件接口 (8)3.1.3 硬件接口 (8)3.2内部接口 (8)3.3.1结构 (8)3.3.2处理过程 (8)第四章运行设计 (9)4.1运行模块的组合 (9)4.2运行控制 (9)4.3运行时间 (9)第五章出错处理设计 (10)5.1出错输出信息 (10)5.2出错处理对策 (10)第六章维护设计 (11)第一章引言1.1 编写目的本说明书目的在于明确说明坦克大战游戏各功能的实现方式,指导开发员进行编码,并解决实现该系统的程序模块设计问题。
包括如何把该系统划分成若干个功能模块、决定各个功能模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
本说明书的预期读者为:从事游戏开发的工作人员,系统分析员,系统设计人员,开发工程师,测试经理以及测试设计人员。
1.2 项目背景现在人们工作的压力越来越大,休息的时候很少,为了让疲惫的心灵得以休息,开发了坦克大战的小游戏来让玩家轻松一会,该游戏操作十分简单,只要操作键盘上的方向键按住攻击键就可以玩该游戏,轻松享受玩游戏的喜悦,可操作性好,而且不会使玩家沉溺于该游戏,对玩家的学习和工作都起积极的作用。
坦克大战游戏策划书3篇篇一《坦克大战游戏策划书》一、游戏概述1. 游戏名称:坦克大战2. 游戏类型:射击游戏3. 游戏背景:设定在一个虚构的战争世界,玩家将扮演坦克驾驶员,参与各种战斗任务。
4. 游戏目标:通过消灭敌人、摧毁敌方基地或完成特定目标来获得胜利。
二、游戏玩法1. 操作方式玩家使用键盘或手柄控制坦克的移动和射击。
方向键控制坦克的前后左右移动,射击键进行攻击。
2. 游戏地图地图设计多样化,包括平原、城市、森林等地形。
地图上分布着各种障碍物、敌方坦克和资源点。
3. 游戏模式单人模式:玩家独自对抗电脑控制的敌人。
多人模式:支持玩家之间进行对战或合作。
4. 游戏元素坦克种类:设计多种不同类型的坦克,具有不同的属性和技能。
武器系统:坦克配备多种武器,如主炮、副炮、导弹等,可升级和切换。
道具系统:地图上散布着各种道具,如补血包、加速道具、护盾等,可增强玩家的能力。
升级系统:通过消灭敌人或完成任务获得经验值,升级坦克的属性和解锁新技能。
三、游戏特色1. 丰富的游戏内容多种游戏模式,满足不同玩家的需求。
精心设计的地图和关卡,增加游戏的挑战性和趣味性。
2. 策略与技巧并重玩家需要根据地形和敌人的位置,选择合适的战术和武器。
合理运用道具和升级系统,提升坦克的战斗力。
3. 精美的画面与音效采用高品质的图形和音效,营造出紧张刺激的游戏氛围。
支持多种分辨率和画面特效,适应不同设备的需求。
4. 在线排行榜与成就系统设立在线排行榜,让玩家可以与其他玩家竞争。
设计丰富的成就系统,增加游戏的可玩性和重复性。
四、游戏开发计划1. 团队组建确定游戏开发团队的成员,包括策划、美术、程序等。
2. 开发进度制定详细的开发进度表,明确各个阶段的任务和完成时间。
3. 测试与修复进行内部测试和玩家测试,收集反馈意见,修复发现的问题。
4. 发布与推广确定游戏的发布平台和时间,制定相应的推广策略。
五、游戏盈利模式1. 游戏内购出售虚拟道具,如坦克、武器、皮肤等。
课题第15课Scratch游戏制作-坦克大战教学目标1. 分析“坦克大战”各角色程序及编程步骤。
2. 能够综合运用Scratch各模块功能完成游戏制作。
教学重点1. 分析“坦克大战”各角色程序及编程步骤。
2. 能够综合运用Scratch各模块功能完成游戏制作。
教学难点能够综合运用Scratch各模块功能完成游戏制作。
教学方法讲授法、讨论法、练习法、探究法教学手段多媒体课件、Scratch编程软件教学过程教学环节师生活动设计意图情景导入游戏体验:单击绿旗,坦克大战开始,看看你在规定时间内打败了多少坦克(得到多少分数)。
一、“坦克大战”程序分析1. 坦克:主角坦克通过键盘上下左右运动。
敌人坦克随机面向不同方向运动。
2. 炮弹:主角炮弹通过空格键控制发射。
敌人炮弹跟随敌人运动方向发射。
3. 变量应用:血量、得分、时间。
二、“坦克大战”程序编写【任务一】导入坦克及炮弹素材。
通过情景导入吸引学生注意力,引出本节课学习内容。
通过分析了解坦克大战原理。
新课讲解【任务二】“坦克大战”程序编写。
(1)依次编写各角色程序---主角坦克(2)依次编写各角色程序---主角炮弹(3)依次编写各角色程序---敌人1(敌人2与3与敌人1程序类似)通过任务驱动进行坦克大战游戏编写。
课后练习(4)依次编写各角色程序---敌人炮弹1(敌人炮弹2与3与敌人炮弹1程序类似)【课后练习】改进Scratch坦克大战程序,使游戏更加真实。
可改成双人游戏,增加基地、增加障碍物等等。
通过课后练习熟练掌握本节课知识。
板书设计Scratch游戏制作-坦克大战一、“坦克大战”程序分析二、“坦克大战”程序编写。
坦克大战游戏策划书3篇篇一坦克大战游戏策划书一、游戏概述游戏名称:坦克大战游戏类型:休闲竞技类游戏目标:玩家控制坦克在战场上与其他玩家或电脑控制的坦克进行战斗,通过摧毁敌方坦克来获取胜利。
游戏玩法:玩家通过操作坦克的移动、射击等动作,与其他坦克进行对抗。
游戏中会有各种道具和障碍物,增加游戏的趣味性和挑战性。
二、游戏角色1. 玩家坦克:由玩家控制,具有不同的属性和技能。
2. 敌方坦克:包括电脑控制的普通坦克和具有特殊能力的 BOSS 坦克。
三、游戏场景1. 战场:分为多个不同的地图,每个地图都有独特的地形和障碍物。
2. 基地:玩家和敌方的起始位置,需要保护好自己的基地不被摧毁。
四、游戏规则1. 玩家通过操作坦克在战场上移动和射击。
2. 摧毁敌方坦克可以获得分数和道具。
3. 玩家的坦克被摧毁后,可以在一定时间后复活。
4. 游戏时间结束时,分数高的一方获胜。
五、游戏道具1. 强化道具:可以提升坦克的攻击力、防御力等属性。
2. 特殊武器道具:如导弹、激光等,具有强大的攻击效果。
3. 恢复道具:可以恢复坦克的生命值。
六、游戏界面1. 游戏主界面:包括开始游戏、选择地图、查看排行榜等功能。
2. 游戏战斗界面:显示战场地图、玩家和敌方坦克的位置、生命值、弹药数量等信息。
七、游戏音效1. 背景音乐:营造紧张激烈的战斗氛围。
2. 射击音效:增强射击的真实感。
3. 爆炸音效:让玩家更直观地感受到战斗的激烈程度。
八、游戏开发计划1. 需求分析:[具体时间]2. 设计阶段:[具体时间]3. 开发阶段:[具体时间]4. 测试阶段:[具体时间]5. 上线阶段:[具体时间]九、游戏推广计划1. 在各大游戏平台进行推广。
2. 利用社交媒体进行宣传。
3. 举办线上和线下的游戏比赛。
十、游戏盈利模式1. 内购道具。
2. 广告收入。
篇二坦克大战游戏策划书一、游戏概述游戏名称:坦克大战游戏类型:休闲对战类游戏平台:多平台(移动端、PC 端等)游戏背景:设定在一个充满战争硝烟的世界,玩家将操控坦克在各种战场上进行激烈战斗。
目录1 需求分析 (1)1.1 用户简介 (1)1.2 项目目的和目标 (1)1.3 功能和环境 (1)2 系统设计 (2)3 系统实现 (3)3.1系统框架设计与实现 (3)3.1.1 系统框架功能概述 (3)3.1.2 系统框架实现过程 (3)3.2 地图模块设计与实现 (5)3.2.1 地图模块功能概述 (5)3.2.2 地图模块实现过程 (5)3.3坦克模型模块设计与实现 (6)3.3.1 坦克模块功能概述 (6)3.3.2 坦克模块实现过程 (7)3.4敌方坦克模块设计与实现 (8)3.5炮弹模块设计与实现 (8)3.5.1 炮弹模块实现过程 (8)3.6炮弹碰撞检测模块设计与实现 (9)3.6.1 炮弹碰撞检测模块功能概述 (9)3.6.2 炮弹碰撞检测模块实现过程 (9)3.7信息面板模块设计与实现 (10)3.7.1 信息面板模块功能概述 (10)3.7.2 信息面板模块实现过程 (11)4 实训总结 (13)附录 (14)1 需求分析1.1 用户简介近年来,手机游戏市场规模迅速增长,市场潜力巨大,同时,我国政府在大力扶持手机游戏行业,特别是对我国本土游戏企业的扶持,手机游戏已被列入国家863计划。
积极参与游戏开发的国内企业可享受政府税收优惠和资金支持,同时,政府也加紧了对外国游戏开发商的管理制度。
除此之外,我国政府各部门还采取了各种各样的形式来帮助发展国内手机游戏行业,手机游戏产业正高速发展。
用户角色大致分为:玩家1.2 项目目的和目标随着科技的发展,手机的功能越来越强大,手机已经成为大多数人生活的一部分,人们渐渐习惯于将手机作为新的娱乐工具,而游戏也已成为手机上不可缺少的功能。
如今手机游戏的规划越来越复杂,画而越来越精美,娱乐性和交互性也越来越强,已经可以和当年的“Gameboy”掌上游戏相媲。
因此,开发这样一个娱乐游戏成为很有必要的事情。
经过思考,我们设计了一块一款“坦克大战”的游戏以丰富人们的娱乐生活。
java课设报告坦克大战什么是Java课设报告坦克大战?Java课设报告坦克大战是一个基于Java编程语言开发的游戏项目。
它模拟了坦克战争的场景,玩家需要操控一辆坦克,与其他玩家或者电脑控制的敌人进行战斗,完成各种任务。
这个项目旨在提高学生的Java编程能力和团队协作能力。
第一步:需求分析和设计在开始编写代码之前,我们需要进行需求分析和设计。
首先,确定游戏的功能和玩法。
例如,游戏应该具有地图、坦克、子弹等基本元素,玩家可以使用键盘控制坦克的移动和攻击,坦克和子弹应该有相应的属性和行为,坦克应该能够与其他坦克进行交互等等。
其次,我们需要设计游戏的界面和用户交互方式,包括游戏的开始菜单、游戏画面、得分、生命值等界面元素。
最后,我们应该考虑游戏的可扩展性,使得我们能够在后续的开发过程中添加更多的功能和元素。
第二步:编写代码在设计完成后,我们开始编写Java代码。
首先,我们创建一个Java项目,并进行必要的配置,例如添加游戏所需的外部库和资源文件。
然后,我们开始编写代码。
我们可以将游戏的不同元素,例如地图、坦克、子弹等,抽象成不同的类,并为每个类定义相应的属性和方法。
我们还可以使用设计模式和面向对象的编程思想,使得代码更加清晰和可维护。
同时,我们需要为游戏添加适当的事件处理器,以响应用户的操作和更新游戏状态。
我们还可以使用Java图形库或者相关的游戏引擎,使游戏具有更好的视觉效果和用户体验。
第三步:测试和调试在代码编写完成后,我们需要进行测试和调试。
我们可以编写一些测试用例,验证游戏的各个功能和元素是否正常工作。
同时,我们需要定期检查并修复可能存在的bug和错误,确保游戏的稳定性和可玩性。
在这个过程中,我们可以与团队成员合作,互相交流和帮助,提高解决问题的效率和质量。
第四步:项目上线和发布在完成测试和调试后,我们可以将游戏部署到服务器上,并发布给玩家。
我们可以选择通过应用商店或者网站进行发布,或者将游戏打包成可执行文件,供玩家下载和安装。
基于Java的坦克大战游戏的设计与实现摘要:随着人们对生活质量的要求一天比一天高,为了让人们更好地开掘自身的智慧,游戏就此进入了大众的视野,在人们的生活中有着重要的位置,已然变得必不可少。
游戏产业推动高新技术不断升级,极大地促进了经济的增长,推动了“第四产业”的经济腾飞。
坦克大战游戏是童年时期经常玩的经典游戏,我们对它都十分了解。
游戏通过分析JA V A游戏开发和代码设计,用Eclipse软件开发了坦克大战游戏,运用接口技术,使一个类能够实现多个接口,使用套接字Socket 来完成client端和server端的连接。
玩家通过连接访问进入游戏,通过操纵坦克来守卫基地,玩家还可以获得超级武器来提升坦克的属性,摧毁全部敌方坦克来取得胜利,操作非常简单,还具有非常高的普遍率,适合所有人群玩。
该游戏既满足了人们的个性化需求,也让玩家在游戏过程中丢掉烦恼,尽情地释放压力。
关键词:Java 坦克大战游戏SocketThe Design and Implementation of The Java Based Tank War GameAbstract:As people demand higher quality of life every day, in order to make people better dig their own wisdom, the game into the public vision, in people's lives have a vital position, has become an indispensable part. The game industry to promote the upgrading of high-tech, which greatly promoted the economic growth, and promote the "fourth industry" economic take-off. Tank war game is often played in childhood, but also the classic game. Game through the analysis of JA V A game development and code design, with Eclipse software developed a tank war game, the use of interface technology, so that a class can achieve multiple interfaces, the use of socket Socket to complete client and server side of the connection. Players access the game through the connection, through the manipulation of tanks to guard the base, the eradication of all enemy tanks to win, players can also get super weapons to enhance the properties of the tank, the operation is very simple, suitable for people of all ages to play. The game not only meets the individual needs of people, but also allows players to lose trouble in the course of the game, enjoy the pressure to release.Key words: Java; Tank war game; SocketII目录1.引言 (1)2.系统分析 (1)2.1需求和技术分析 (1)2.2功能分析 (2)3.总体设计 (2)3.1总体功能 (2)3.2坦克大战总体流程图 (4)4.详细设计 (5)4.1面板功能设计 (5)4.2子弹功能设计 (8)4.3坦克功能设计 (9)4.4服务器设计 (10)4.5客户端设计 (13)5. 游戏测试 (15)5.1测试方法 (15)5.2系统测试 (15)5.3测试分析和小结 (17)6.结论 (18)参考文献 (18)1.引言随着社会和时代的进步,来自各个方面的压力让人没精打采,为了分解人们的压力,休养那变得疲顿的头脑和劳累的身心,特设计了坦克大战小游戏,游戏操作非常容易,只要将手指放在键盘上敲击相关的游戏键就可以玩,在玩游戏的过程中能够体验现实生活中没有的快乐,既有利于身心健康,又不会影响工作和学习。
Unity坦克大战游戏设计Unity坦克大战游戏设计一、简介随着科技的发展,游戏成为了人们娱乐生活中不可或缺的一部分。
而Unity作为一款强大的游戏开发引擎,给游戏设计师带来了无限的可能性。
本文将重点介绍使用Unity进行坦克大战游戏设计的过程。
二、游戏背景坦克大战游戏是一种经典的射击对战游戏,早在上世纪80年代就开始流行。
游戏背景通常设定在战争时期,玩家需要操纵自己的坦克与其他玩家或敌人进行对战。
通过击败敌人或完成特定任务来获得胜利。
三、游戏设计1. 游戏场景设计游戏的场景可以设置在不同的环境中,如城市、沙漠或森林等。
通过精心设计的地形和障碍物,增加游戏的挑战性和可玩性。
2. 坦克模型设计在游戏中,玩家需要选择一个坦克模型来操纵。
可以设计多种类型的坦克,如重型坦克、轻型坦克或支援坦克等。
每种坦克都有自己的优势和弱点,玩家可以根据自己的喜好选择合适的坦克。
3. 控制与操作玩家可以通过键盘或手柄控制坦克的移动和瞄准,同时可以发射炮弹进行攻击。
通过巧妙的操作技巧和策略,玩家可以击败敌人并取得胜利。
4. 敌人设计为了增加游戏的难度和挑战性,设计一定数量的敌人与玩家进行对战。
可以设置敌人的智能程度和战斗能力,让玩家感受到真实的对抗。
5. 游戏规则设定设计游戏的胜利条件和失败条件,给玩家明确的目标。
可以设定击败所有敌人或完成特定任务为胜利条件,从而激发玩家的游戏动力。
6. 游戏界面设计游戏界面应简洁清晰,显示玩家的血量、弹药数量和游戏得分等信息。
同时可以设计一些额外功能,如暂停、设置等,提供更好的用户体验。
四、游戏开发流程1. 学习Unity首先,需要学习使用Unity引擎进行游戏开发的基本知识。
可以通过阅读相关教程、参加培训课程或观看视频教程等方式学习。
2. 坦克模型制作使用3D建模软件,如Blender或Maya,制作坦克模型,并导入到Unity中进行调整和优化。
可以为坦克添加贴图和特效,增加游戏的视觉效果。
目录1 需求分析 (1)1.1 用户简介 (1)1.2 项目目的和目标 (1)1.3 功能和环境 (1)2 系统设计 (2)3 系统实现 (3)3.1系统框架设计与实现 (3)3.1.1 系统框架功能概述 (3)3.1.2 系统框架实现过程 (3)3.2 地图模块设计与实现 (5)3.2.1 地图模块功能概述 (5)3.2.2 地图模块实现过程 (5)3.3坦克模型模块设计与实现 (6)3.3.1 坦克模块功能概述 (6)3.3.2 坦克模块实现过程 (7)3.4敌方坦克模块设计与实现 (8)3.5炮弹模块设计与实现 (8)3.5.1 炮弹模块实现过程 (8)3.6炮弹碰撞检测模块设计与实现 (9)3.6.1 炮弹碰撞检测模块功能概述 (9)3.6.2 炮弹碰撞检测模块实现过程 (9)3.7信息面板模块设计与实现 (10)3.7.1 信息面板模块功能概述 (10)3.7.2 信息面板模块实现过程 (11)4 实训总结 (13)附录 (14)1 需求分析1.1 用户简介近年来,手机游戏市场规模迅速增长,市场潜力巨大,同时,我国政府在大力扶持手机游戏行业,特别是对我国本土游戏企业的扶持,手机游戏已被列入国家863计划。
积极参与游戏开发的国内企业可享受政府税收优惠和资金支持,同时,政府也加紧了对外国游戏开发商的管理制度。
除此之外,我国政府各部门还采取了各种各样的形式来帮助发展国内手机游戏行业,手机游戏产业正高速发展。
用户角色大致分为:玩家1.2 项目目的和目标随着科技的发展,手机的功能越来越强大,手机已经成为大多数人生活的一部分,人们渐渐习惯于将手机作为新的娱乐工具,而游戏也已成为手机上不可缺少的功能。
如今手机游戏的规划越来越复杂,画而越来越精美,娱乐性和交互性也越来越强,已经可以和当年的“Gameboy”掌上游戏相媲。
因此,开发这样一个娱乐游戏成为很有必要的事情。
经过思考,我们设计了一块一款“坦克大战”的游戏以丰富人们的娱乐生活。
1.3 功能和环境功能:坦克大战共分为两个对象,分别是用户和电脑。
用户可以通过控制玩家的坦克来摧毁敌方的坦克保护自己的“家”,把所有的敌方坦克消灭完达到胜利。
敌方的坦克在初始的时候是默认三十个的(这可以自己设置),当然,如果玩家被敌方坦克的子弹打中,那就gameover。
运行环境:Java虚拟机。
坦克大战游戏是由系统框架、地图模块、坦克模型模块、敌方坦克模块、炮弹模块、炮弹碰撞检测、信息面板模块这七个功能模块组成。
分别是:➢系统框架:主界面设计➢地图模块:读取并显示地图➢坦克模型模块:设计坦克并在地图中显示➢敌方坦克模块:加入敌方坦克并使其移动➢炮弹模块:加入炮弹并使其移动➢炮弹碰撞检测:炮弹击中墙或坦克、炮弹之间的碰撞➢信息面板模块:显示战场信息并实时更新3.1系统框架设计与实现3.1.1 系统框架功能概述➢界面设计➢整体是一个JSplitPane,分为左右两部分。
➢左侧显示控制信息,右侧显示战场信息,都是JPanel的子类。
➢战场是24*24的方格,每个方格为25像素*25像素如下图所示:图1 系统运行界面3.1.2 系统框架实现过程先要把左右界面的大小给分布好,把现实面板在左边显示,战场面板在右边显示。
package tank.view;import javax.swing.JFrame;import javax.swing.JSplitPane;public class TankGame extends JFrame{JSplitPane splitPane;InfoField info; //左部信息BattleField battle; //右部战场public TankGame(){setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(750+8*2,600+30+8);//分隔面板splitPane = new JSplitPane();splitPane.setSize(750,600);splitPane.setDividerLocation(150);splitPane.setDividerSize(1);//初始化右部面板battle = new BattleField();splitPane.setRightComponent(battle);//初始化左部面板info = new InfoField();splitPane.setLeftComponent(info);info.setBattleField(battle);battle.setInfo(info);info.showInfo();setContentPane(splitPane);addKeyListener(battle);setVisible(true);}}3.2 地图模块设计与实现3.2.1 地图模块功能概述游戏中的地图共有三种:➢地面(坦克可以在上面移动)➢墙(坦克不能通过,但墙能被炮弹击毁)➢主基地图2 地图的设计3.2.2 地图模块实现过程byte[][] map; //地图数组BattleField battle;//地图的宽和高public static final int MapWidth = 24;public static final int MapHeight = 24;//加载地图public void loadMap(String mapFileName) throws IOException{ map = new byte[MapWidth][MapHeight];File file = new File(mapFileName);Scanner scanner = new Scanner(file);for(int i=0;i<MapWidth;i++){for(int j=0;j<MapHeight;j++){map[i][j] = scanner.nextByte();}}}//获取地图信息public byte getInfoAt(int row, int col){if(row<0 || row>=MapHeight || col<0 ||col>=MapWidth) return UNEXPLORED;return map[row][col];}//设置地图信息public void setInfoAt(int row, int col, byte value){if(row<0 || row>=MapHeight || col<0 ||col>=MapWidth) return;map[row][col] = value;}//获取地图大小(宽)public int getMapWidth(){return MapWidth;}//获取地图大小(高)public int getMapHeight(){return MapHeight;}3.3坦克模型模块设计与实现3.3.1 坦克模块功能概述坦克的功能有:➢发射炮弹:按下空格键,玩家坦克可以发射炮弹➢移动速度:根据炮弹的类型,速度有不同的值➢结实程度:根据炮弹的类型,坦克的结实程度不同图3 坦克的功能3.3.2 坦克模块实现过程//发射炮弹public Shell fire(){int tankX = 25*position.getCol();int tankY = 25*position.getRow();int x = 0;int y = 0;if(direction==Direction.up){x = tankX +11;y = tankY - 6;}else if(direction==Direction.down){x = tankX + 11;y = tankY +25;} else if(direction==Direction.left){x = tankX - 6;y = tankY + 11;} else if(direction==Direction.right){x = tankX + 25;y = tankY + 11;}Shell shell = new Shell(this,shellSpeed,direction,x,y);shell.setMap(map);shell.setBattle(battle);return shell;}// 移动速度(移动间隔时间)public static final int speedNormal = 500;public static final int speedFast = 200;public static final int speedSlow = 800;// 结实程度public static final int hpNormal = 1;public static final int hpHard = 2;public static final int hpExtremeHard = 3;3.4敌方坦克模块设计与实现3. 4. 1 坦克的类别FastTank, //侦察坦克。
移动速度快,炮弹速度正常,生命值普通NormalTank, //普通坦克。
移动速度一般,炮弹速度正常,生命值较高HardTank, //肉盾坦克。
移动速度慢,炮弹速度正常,生命值非常高AttackTank, //攻击坦克。
移动速度一般,炮弹速度非常快,生命值普通PlayerDefault //初始的用户坦克。
移动速度一般,炮弹速度正常,生命值普通出现的概率:➢15%可能是侦查坦克,➢35%是普通坦克,➢25%是肉盾坦克,➢25%是攻击坦克3.5炮弹模块设计与实现3.5.1 炮弹模块实现过程首先要获取炮弹的图片,然后在设置炮弹的速度,大小。
// 移动一次。
炮弹大小是3*6像素,每次移动6像素public void move() {if (dir == Direction.up) {pixelY -= 6;} else if (dir == Direction.down) {pixelY += 6;} else if (dir == Direction.left) {pixelX -= 6;} else if (dir == Direction.right) {pixelX += 6;}}// 炮弹速度(移动间隔时间)public static final int shellSpeedNormal = 100;public static final int shellSpeedFast = 70;public static final int shellSpeedExtremeFast = 35;3.6炮弹碰撞检测模块设计与实现3.6.1 炮弹碰撞检测模块功能概述炮弹碰撞检测有两种:➢炮弹是否有效是否超出地图检测地形遇到墙是否碰到坦克是否遇到其他炮弹➢炮弹是否和shell发生碰撞两个炮弹都水平两个炮弹都垂直一个水平一个垂直3.6.2 炮弹碰撞检测模块实现过程//是否和shell发生碰撞public boolean isConflict(Shell shell){boolean result = false;//两个炮弹都水平if((this.getDir()==Direction.left || this.getDir()==Direction.right)&& (shell.getDir()==Direction.left || shell.getDir()==Direction.right)){//在同一水平位置if(this.getPixelY()==shell.getPixelY()){if(this.getPixelX()>=shell.getPixelX()-6 && this.getPixelX()<=shell.getPixelX()+6){return true;}}}//两个炮弹都垂直if((this.getDir()==Direction.up || this.getDir()==Direction.down)&& (shell.getDir()==Direction.up || shell.getDir()==Direction.down)){//在同一条竖线上if(this.getPixelX()==shell.getPixelX()){if(this.getPixelY()>=shell.getPixelY()-6 && this.getPixelY()<=shell.getPixelY()+6){return true;}}}//一个水平一个垂直if((this.getDir()==Direction.left || this.getDir()==Direction.right)&& (shell.getDir()==Direction.up || shell.getDir()==Direction.down)){ if(this.getPixelX()>=shell.getPixelX()-6 && this.getPixelX()<=shell.getPixelX()+3){if(this.getPixelY()>=shell.getPixelY()-3 && this.getPixelY()<=shell.getPixelY()+6){return true;}}}return result;}3.7信息面板模块设计与实现3.7.1 信息面板模块功能概述信息面板包括:➢关卡➢生命值➢炮弹数量➢当前敌军➢敌方援军3.7.2 信息面板模块实现过程public class InfoField extends JPanel{JLabel level_lb,level_n; //关卡JLabel hp_lb,hp_n; //生命值JLabel shells_lb,shells_n; //炮弹数JLabel curEnemies_lb,curEnemies_n; //当前敌军JLabel remEnemies_lb,remEnemies_n; //敌方援军BattleField battleField;public InfoField() {setLayout(null);setSize(150,600);//设置文字level_lb = new JLabel("关卡");hp_lb = new JLabel("生命值");shells_lb = new JLabel("炮弹数量");curEnemies_lb = new JLabel("当前敌军");remEnemies_lb = new JLabel("敌方援军");//设置位置和大小level_lb.setBounds(5, 10, 100, 30);hp_lb.setBounds(5, 40, 100, 30);shells_lb.setBounds(5, 70, 100, 30);curEnemies_lb.setBounds(5, 100, 100, 30);remEnemies_lb.setBounds(5, 130, 100, 30);//创建出组件,方便后续对其进行设置level_n = new JLabel("1");hp_n = new JLabel();shells_n = new JLabel();curEnemies_n = new JLabel();remEnemies_n = new JLabel();//设置位置和大小level_n.setBounds(105, 10, 50, 30);hp_n.setBounds(105, 40, 50, 30);shells_n.setBounds(105, 70, 50, 30);curEnemies_n.setBounds(105, 100, 50, 30);remEnemies_n.setBounds(105, 130, 50, 30);}public void setBattleField(BattleField battleField) {this.battleField = battleField;}public void showInfo(){add(level_lb);add(level_n);add(hp_lb);add(hp_n);add(shells_lb);add(shells_n);add(curEnemies_lb);add(curEnemies_n);add(remEnemies_lb);add(remEnemies_n);}public void setInfo(){hp_n.setText(battleField.getPlayerHp()+"");shells_n.setText(battleField.getShellCount()+"");curEnemies_n.setText(battleField.getCurEnemyCount()+"");remEnemies_n.setText(battleField.getRemEnemyCount()+"");}}4 实训总结通过这次JAVA实训,不仅让我怀念起了童年时玩的游戏—《坦克大战》,并且能在娱乐中快乐的学习。