坦克大战游戏设计与制作

合集下载

坦克大战游戏概要设计

坦克大战游戏概要设计

目录第一章引言 ............................................................................................ - 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篇

坦克大战游戏策划书3篇

坦克大战游戏策划书3篇篇一《坦克大战游戏策划书》一、游戏概述1. 游戏名称:坦克大战2. 游戏类型:射击游戏3. 游戏背景:设定在一个虚构的战争世界,玩家将扮演坦克驾驶员,参与各种战斗任务。

4. 游戏目标:通过消灭敌人、摧毁敌方基地或完成特定目标来获得胜利。

二、游戏玩法1. 操作方式玩家使用键盘或手柄控制坦克的移动和射击。

方向键控制坦克的前后左右移动,射击键进行攻击。

2. 游戏地图地图设计多样化,包括平原、城市、森林等地形。

地图上分布着各种障碍物、敌方坦克和资源点。

3. 游戏模式单人模式:玩家独自对抗电脑控制的敌人。

多人模式:支持玩家之间进行对战或合作。

4. 游戏元素坦克种类:设计多种不同类型的坦克,具有不同的属性和技能。

武器系统:坦克配备多种武器,如主炮、副炮、导弹等,可升级和切换。

道具系统:地图上散布着各种道具,如补血包、加速道具、护盾等,可增强玩家的能力。

升级系统:通过消灭敌人或完成任务获得经验值,升级坦克的属性和解锁新技能。

三、游戏特色1. 丰富的游戏内容多种游戏模式,满足不同玩家的需求。

精心设计的地图和关卡,增加游戏的挑战性和趣味性。

2. 策略与技巧并重玩家需要根据地形和敌人的位置,选择合适的战术和武器。

合理运用道具和升级系统,提升坦克的战斗力。

3. 精美的画面与音效采用高品质的图形和音效,营造出紧张刺激的游戏氛围。

支持多种分辨率和画面特效,适应不同设备的需求。

4. 在线排行榜与成就系统设立在线排行榜,让玩家可以与其他玩家竞争。

设计丰富的成就系统,增加游戏的可玩性和重复性。

四、游戏开发计划1. 团队组建确定游戏开发团队的成员,包括策划、美术、程序等。

2. 开发进度制定详细的开发进度表,明确各个阶段的任务和完成时间。

3. 测试与修复进行内部测试和玩家测试,收集反馈意见,修复发现的问题。

4. 发布与推广确定游戏的发布平台和时间,制定相应的推广策略。

五、游戏盈利模式1. 游戏内购出售虚拟道具,如坦克、武器、皮肤等。

第15课 Scratch游戏制作-坦克大战(教案)-初中信息技术Scratch编程

第15课 Scratch游戏制作-坦克大战(教案)-初中信息技术Scratch编程

课题第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游戏制作-坦克大战一、“坦克大战”程序分析二、“坦克大战”程序编写。

JAVA课程设计 坦克大战

JAVA课程设计 坦克大战

得分显示:在游戏 界面实时显示得分 情况,方便玩家了 解游戏进度
减少内存占用:优 化数据结构,减少 不必要的内存分配
提高渲染效率: 优化渲染算法, 减少渲染时间
优化网络通信:减 少网络延迟,提高 网络通信效率
优化AI算法:提高 AI算法的效率和准 确性,提高游戏体 验
界面布局:合 理规划界面布 局,提高用户
玩家需要控制坦克,消灭敌 人,保护自己的基地
游戏支持多人在线对战,玩 家可以与朋友一起挑战
玩家控制 坦克,在 战场上与 敌人战斗
坦克可以 发射炮弹, 摧毁敌人 或障碍物
玩家需要 躲避敌人 的攻击, 保护自己 的坦克
游戏有各 种关卡, 难度逐渐 增加
玩家可以 通过升级 坦克,提 高战斗力
游戏支持 多人在线 对战,增 加游戏乐 趣
生命值耗尽:当 玩家的生命值降 至0时,游戏结束
时间耗尽:当游 戏时间耗尽时, 游戏结束
胜利条件:当玩 家达到胜利条件 时,游戏结束
失败条件:当玩 家达到失败条件 时,游戏结束
得分规则:击毁敌 方坦克得分,被敌 方坦克击毁扣分
得分方式:根据击 毁敌方坦克的数量 和难度计算得分
得分限制:得分上 限为1000分,达到 上限后不再增加得 分
,a click to unlimited possibilities
汇报人:
01
02
03
04
05
06
游戏类型:坦克大战
游戏背景:二战时期
游戏目标:摧毁敌方坦克,保 护自己的基地
游戏玩法:玩家控制坦克,通 过射击和躲避来消灭敌方坦克
游戏包含多个关卡,每个关 卡有不同的难度和挑战
设计一款坦克大战游戏
游戏界面:包括 菜单、地图、角 色、道具等元素

JAVA课程设计坦克大战含代码

JAVA课程设计坦克大战含代码

游戏结束判断
生命值耗尽:当坦克的生命值降至0时,游戏结束 游戏时间结束:当游戏时间达到预设值时,游戏结束 胜利条件达成:当一方达到预设的胜利条件时,游戏结束 玩家主动退出:当玩家主动选择退出游戏时,游戏结束
游戏得分计算
得分规则:击毁敌 方坦克、保护己方 坦克、完成特定任 务等
得分方式:根据击 毁敌方坦克的数量、 保护己方坦克的数 量、完成任务的难 度等计算得分
得分显示:在游戏 界面实时显示得分 情况,方便玩家了 解游戏进度
得分记录:游戏结 束后,记录玩家的 分情况,方便玩 家查看历史成绩
游戏优化与扩展
游戏性能优化
优化算法: 使用更高 效的算法, 如动态规 划、贪心 算法等
减少内存 占用:优 化数据结 构,减少 不必要的 内存占用
优化渲染: 使用更高 效的渲染 技术,如 OpenGL、 DirectX 等
优化网络 传输:使 用更高效 的网络传 输协议, 如TCP、 UDP等
优化AI: 使用更高 效的AI算 法,如神 经网络、 遗传算法 等
优化资源 管理:合 理分配系 统资源, 避免资源 浪费
游戏扩展功能实现
增加新的坦克类型:如重型坦克、轻 型坦克等
增加新的地图:如沙漠地图、雪地地 图等
增加新的游戏模式:如团队模式、生 存模式等
音效类型:背景音乐、战斗音效、 胜利音效等
音效处理:音量调节、音效混合、 音效剪辑等
添加标题
添加标题
添加标题
添加标题
音效来源:自行创作、购买版权、 网络下载等
音效与游戏场景的结合:根据游戏 场景选择合适的音效,增强游戏体 验
游戏实体设计
坦克类设计
坦克属性:生命值、攻击 力、防御力、速度等

坦克大战游戏策划书3篇

坦克大战游戏策划书3篇

坦克大战游戏策划书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代码。

首先,我们创建一个Java项目,并进行必要的配置,例如添加游戏所需的外部库和资源文件。

然后,我们开始编写代码。

我们可以将游戏的不同元素,例如地图、坦克、子弹等,抽象成不同的类,并为每个类定义相应的属性和方法。

我们还可以使用设计模式和面向对象的编程思想,使得代码更加清晰和可维护。

同时,我们需要为游戏添加适当的事件处理器,以响应用户的操作和更新游戏状态。

我们还可以使用Java图形库或者相关的游戏引擎,使游戏具有更好的视觉效果和用户体验。

第三步:测试和调试在代码编写完成后,我们需要进行测试和调试。

我们可以编写一些测试用例,验证游戏的各个功能和元素是否正常工作。

同时,我们需要定期检查并修复可能存在的bug和错误,确保游戏的稳定性和可玩性。

在这个过程中,我们可以与团队成员合作,互相交流和帮助,提高解决问题的效率和质量。

第四步:项目上线和发布在完成测试和调试后,我们可以将游戏部署到服务器上,并发布给玩家。

我们可以选择通过应用商店或者网站进行发布,或者将游戏打包成可执行文件,供玩家下载和安装。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录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实训,不仅让我怀念起了童年时玩的游戏—《坦克大战》,并且能在娱乐中快乐的学习。

相关文档
最新文档