坦克大战设计

合集下载

坦克大战游戏概要设计

坦克大战游戏概要设计

目录第一章引言 ............................................................................................ - 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 项目背景现在人们工作的压力越来越大,休息的时候很少,为了让疲惫的心灵得以休息,开发了坦克大战的小游戏来让玩家轻松一会,该游戏操作十分简单,只要操作键盘上的方向键按住攻击键就可以玩该游戏,轻松享受玩游戏的喜悦,可操作性好,而且不会使玩家沉溺于该游戏,对玩家的学习和工作都起积极的作用。

坦克大战毕业设计

坦克大战毕业设计
1.1 游戏设计的需求分析.................................................................... 4 1.1.1 本系统的现实意义................................................................4 1.1.2 本系统和其他开发游戏区别..................................................4
1.1.1 本系统的现实意义
游戏本身是一种娱乐方式,能带给人们无尽的乐趣,而且游戏行业的发展还 将会带动众多周边产业,如五金、塑料、机械、电子、 显像管,高端机型甚至使 用了 40 英寸以上的大屏幕背投、液晶显示器等,这些显像设备不但要依赖国内众 多显像管生产企业提供支持,更要针对游戏的内容进行深入开发和优化,以适应 游戏内容的飞速发展和变化,大大突破了传统家电类显像设备的限制,对国内显 像管制造企业的发展、创新具有极大的推动作用,大型游戏机的外部框体制造涉 及工业设计、模具加工、五金加工、塑料成形、特殊印刷等工艺流程,由此带动 了一大批相关的零部件生产制造企业,而这些企业均为生产密集型企业,大幅度 增加了劳动就业的需求。
1.2 开发技术概述................................................................................ 5 1.2.1 JAVA、C 语言、C++三种主流编程技术比较........................5
1.3 本章小结........................................................................................ 5 第 2 章 相关技术理论............................................................................. 5

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算 法,如神 经网络、 遗传算法 等
优化资源 管理:合 理分配系 统资源, 避免资源 浪费
游戏扩展功能实现
增加新的坦克类型:如重型坦克、轻 型坦克等
增加新的地图:如沙漠地图、雪地地 图等
增加新的游戏模式:如团队模式、生 存模式等
音效类型:背景音乐、战斗音效、 胜利音效等
音效处理:音量调节、音效混合、 音效剪辑等
添加标题
添加标题
添加标题
添加标题
音效来源:自行创作、购买版权、 网络下载等
音效与游戏场景的结合:根据游戏 场景选择合适的音效,增强游戏体 验
游戏实体设计
坦克类设计
坦克属性:生命值、攻击 力、防御力、速度等

JAVA课程设计坦克大战游戏(含代码)

JAVA课程设计坦克大战游戏(含代码)

Java课程设计任务书简单电子游戏坦克大战的设计1、主要内容:设计一个简单的坦克大战电子游戏,可以允许多位玩家在局域网中同时对战2、系统要求:游戏具有图形游戏界面,能让用户看到游戏所给出的反馈。

有人机交互功能,使用户操作指定的游戏元素,并且坦克具有生命值,能攻击敌方,无法攻击友方,而且坦克的攻击具有视觉效果!3、具体要求(包括技术要求等):1.需要有图形游戏界面,让用户能看到游戏给出的反馈2.有人机交互功能,使用户能操作指定的游戏元素3.不同队伍的坦克,须显示不同外观,已分辨敌我4.坦克能够开火,攻击敌方,但不能攻击队友5需要有不可被子弹穿透的墙6.坦克有生命值,并非被击中一次就会爆炸7游戏结束后可重新开始学习并掌握以下技术:Java、JavaBean 等熟练使用以下开发工具:Myeclipse 等实现系统上述的功能。

4、进度安排:12月28日~ 12月29日:课程设计选题,查找参考资料12月30日~ 1月1日:完成系统设计和数据库设计1月2日~ 1月4日:完成程序代码的编写1月4日~ 1月5日:系统测试与完善1月5日~ 1月6日:完成课程设计报告,准备答辩分工:随着计算机的普及以及对电子游戏的认识,电子游戏已被越来越多的人选作放松、娱乐的休闲方式;电子游戏既不需要专门购买游戏器材,也不需要宽阔的游戏场地,只需要一台能独立完成任务的计算机即可,它可以是人们工作、学习时用的计算机,并不需要另行配置,这比起传统休闲游戏即省钱又省事。

局域网游戏更是可以将现实空间中零散的计算机,组织起来,使其在逻辑空间中集中起来,使游戏的组织、开展变得轻松。

如此轻松而又安逸的休闲方式,使得越来越多的人尝试,甚至已经将电子游戏作为主要休闲方式,既然有如此多的人使用,那其中必然存在巨大的商机,即使人们不愿意为一个小小的休闲游戏花费金钱,但在游戏中添加广告、游戏相关服务也包藏了巨大的财富;当然电子游戏的制作如今已是空前的火爆,大大小小的游戏公司横空出世,都想在电子游戏制作这个行业里占据一席之地,而一款成功的电子游戏需要精心的策划、分析、设计,只有这样才能获得游戏中包藏的财富,以及做出一款真正能够让玩家娱乐、放松的游戏,而不是骗取玩家钱财的工具。

坦克大战详细设计说明书

坦克大战详细设计说明书

RIA编程技术课程大作业11软工2班傅佳杰目录1绪论…………………………………………………………………………………1.1开发背景………………………………………………………………………1.2开发工具………………………………………………………………………2程序设计……………………………………………………………………………2.1主要设计思路……………………………………………………………………3程序简介………………………………………………………………………3.1程序一些类的介绍……………………………………………………………4程序运行与测试……………………………………………………………………4.1程序开始………………………………………………………………………4.2程序界面………………………………………………………………………4.3系统启动测试………………………………………………………………4.4子弹发射测试………………………………………………………………4.5玩家移动测试………………………………………………………………1绪论1.1开发背景随着信息社会的迅猛发展,人们对游戏的要求也越来越1.2开发工具记事本2程序设计2.1主要设计思路用Canvas进行图形或图像绘制;支持图形或图像移动;支持键盘控制;应实现功能基本完整的单机游戏系统。

3程序类的介绍3.1有关类的介绍Tank类1、Tank类的主要属性有:function Tank(x,y,direct,color){this.x=x;this.y=y;this.speed=1;this.isLive=true;this.direct=direct;this.color=color;1、drawTank ()方法drawTank()方法根据坦克的类型不同可以画出不同类型的坦克和不同方向的坦克2、fire()方法fire()方法的功能是实现打出一颗子弹,fire()方法调用了画坦克的颜色变量c ,画出与坦克一样颜色的子弹,以区别子弹是那一方发出来的。

坦克大战游戏策划书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”掌上游戏相媲。

因此,开发这样一个娱乐游戏成为很有必要的事情。

经过思考,我们设计了一块一款“坦克大战”的游戏以丰富人们的娱乐生活。

Unity坦克大战游戏设计

Unity坦克大战游戏设计

Unity坦克大战游戏设计Unity坦克大战游戏设计一、简介随着科技的发展,游戏成为了人们娱乐生活中不可或缺的一部分。

而Unity作为一款强大的游戏开发引擎,给游戏设计师带来了无限的可能性。

本文将重点介绍使用Unity进行坦克大战游戏设计的过程。

二、游戏背景坦克大战游戏是一种经典的射击对战游戏,早在上世纪80年代就开始流行。

游戏背景通常设定在战争时期,玩家需要操纵自己的坦克与其他玩家或敌人进行对战。

通过击败敌人或完成特定任务来获得胜利。

三、游戏设计1. 游戏场景设计游戏的场景可以设置在不同的环境中,如城市、沙漠或森林等。

通过精心设计的地形和障碍物,增加游戏的挑战性和可玩性。

2. 坦克模型设计在游戏中,玩家需要选择一个坦克模型来操纵。

可以设计多种类型的坦克,如重型坦克、轻型坦克或支援坦克等。

每种坦克都有自己的优势和弱点,玩家可以根据自己的喜好选择合适的坦克。

3. 控制与操作玩家可以通过键盘或手柄控制坦克的移动和瞄准,同时可以发射炮弹进行攻击。

通过巧妙的操作技巧和策略,玩家可以击败敌人并取得胜利。

4. 敌人设计为了增加游戏的难度和挑战性,设计一定数量的敌人与玩家进行对战。

可以设置敌人的智能程度和战斗能力,让玩家感受到真实的对抗。

5. 游戏规则设定设计游戏的胜利条件和失败条件,给玩家明确的目标。

可以设定击败所有敌人或完成特定任务为胜利条件,从而激发玩家的游戏动力。

6. 游戏界面设计游戏界面应简洁清晰,显示玩家的血量、弹药数量和游戏得分等信息。

同时可以设计一些额外功能,如暂停、设置等,提供更好的用户体验。

四、游戏开发流程1. 学习Unity首先,需要学习使用Unity引擎进行游戏开发的基本知识。

可以通过阅读相关教程、参加培训课程或观看视频教程等方式学习。

2. 坦克模型制作使用3D建模软件,如Blender或Maya,制作坦克模型,并导入到Unity中进行调整和优化。

可以为坦克添加贴图和特效,增加游戏的视觉效果。

项目-坦克大战-设计报告

项目-坦克大战-设计报告

《JA V A程序开发课程设计》项目设计项目名称:TankWar 软件专业:软件工程班级:13软工1班姓名:毛晨光学号:一、需求分析:基本功能:1.玩家控制的坦克能够四处移动并且打击敌方坦克;2.敌方坦克能够随机四处移动并且打击玩家控制的坦克;3.玩家控制的坦克拥有血量,而敌方坦克没有;4.坦克受到攻击时血条会缩短;5.敌方坦克被消灭完之后,提示游戏胜利;6.用户方坦克被消灭后提示游戏结束;特色功能:1.坦克具有图片,不单单只是个圈圈。

2.增加了血包功能,地图上会随机出现一个血包,我方坦克开过会增加血量。

二、系统设计:1.TankMap类:实现游戏界面地图的初始化。

2.PainTread类:绘制和重绘功能。

3.DirectionHandler:监听用户的键盘输入。

4.Tank类:实现坦克的初始化,绘制,移动,发射等功能。

5.EnemyTank:实现敌方坦克的初始化,绘制,移动,发射等功能。

6.Shell类:实现炮弹的初始化,绘制,移动,攻击功能。

7.Explor类:实现爆炸的初始化。

绘制功能,爆炸效果由绘制半径从小到大再到小的圆实现。

8.Direction类:包含枚举。

9.Blood类:用于实现血包的功能。

三、功能实现。

一.绘制地图功能:public class TankMap extends Frame{//定义地图的尺寸。

public static final int MAPWIDTH=800;public static final int MAPHEIGHT=600;//我方坦克Tank t=null;//定义随机出现的血包Random r=new Random();Image bufferImage=null;//地方坦克集合->enemys=new ArrayList<EnemyTank>();//爆炸集合public.static.jav//敌方坦克数量默认10个public int enemyCount=5;//主方法public static void main(String[] args) {TankMap tv=new TankMap();tv.init();}public void drawImage(){}//地图初始化方法public void init(){//初始化地图this.setSize(MAPWIDTH,MAPHEIGHT);this.setTitle("TankWar");this.setVisible(true);//添加键盘监听器this.addKeyListener(new DirectionHandler()); //添加穿口关闭监听器this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent arg0){ System.exit(0);}});//初始化我方坦克t=new Tank(this);//初始化敌方坦克for(int i=0;i<enemyCount;i++){enemys.add(new EnemyTank(40+30*i,80,Color.YELLOW)); }//启动绘制线程new Thread(new PaintThread()).start();}//@Overridepublic void paint(Graphics g){//画地图Color c=g.getColor();g.setColor(Color.GREEN);g.fillRect(0,0,MAPWIDTH,MAPHEIGHT);g.setColor(Color.RED);g.drawString("当前炮弹数目:"+shells.size(),20,40);g.drawString("生命值:",20,60);g.fillRect(65,55,t.getLife(),5);g.setColor(c);//画坦克t.draw(g);if(r.nextInt(10)==9 && bloods.size()==0)bloods.add(new Blood());if(r.nextInt(60)==7 && bloods.size()==1)bloods.remove(0);for(int i=0;i<enemys.size();i++){EnemyTank et=enemys.get(i);et.draw(g);}//画爆炸for(int i=0;i<explors.size();i++){Explor e=explors.get(i);e.draw(g);}//绘制血包for(int i=0;i<bloods.size();i++){Blood b=bloods.get(i);b.bloodb(t);b.draw(g);}//画炮弹for(int i=0;i<shells.size();i++){Shell s=shells.get(i);if(s.islive&&s.isgood){s.hitTanks(enemys);}else if(s.islive&&!s.isgood){s.hitTank(t);}s.draw(g);}}//双缓冲,防止游戏地图“频闪”public void update(Graphics g){paint(g);if(bufferImage==null){bufferImage=this.createImage(MAPWIDTH,MAPHEIGHT);}Graphics gbuffer=bufferImage.getGraphics();Color c=gbuffer.getColor();gbuffer.setColor(Color.GREEN);gbuffer.fillRect(0, 0, MAPWIDTH, MAPHEIGHT);gbuffer.setColor(Color.RED);gbuffer.drawString("当前炮弹数目:"+shells.size(),20,40);gbuffer.drawString("生命值:", 20, 60);gbuffer.fillRect(65,55,t.getLife(),5);gbuffer.setColor(c);paint(gbuffer);g.drawImage(bufferImage, 0, 0, null);}//内部类,主要通过调用repaint方法,实现绘图功能class PaintThread implements Runnable{@Overridepublic void run(){while(true){repaint();try{Thread.sleep(260);}catch(InterruptedException e){e.printStackTrace();}}}}//内部类,键盘监听器class DirectionHandler extends KeyAdapter{@Overridepublic void keyPressed(KeyEvent arg0){t.checkDirection(arg0);}}二.绘制坦克功能:public class Tank {//坦克的尺寸和移动速度public static final int WIDTH=50,HEIGHT=50,xspeed=5,yspeed=5;//坦克的初始位置public int x=400,y=300;//坦克的初始化方向,STOP即停止,Direction是自定义的枚举常量,见枚举源代码public Direction direction=Direction.STOP;//地图TankMap tm;//坦克是否存活boolean isLive=true;//坦克属于哪一方,true为用户方,false为敌方boolean isgood=true;//坦克初始化生命值int life=100;//定义坦克的初始化方向,以便插图坦克的图片public int zhuanxiang=1;//获取和设置存活状况public boolean isLive(){return isLive;}public void setLive(boolean isLive){this.isLive=isLive;}//获取和设置生命值public int getLife(){return life;}public void setLife(int life){this.life=life;}//构造方法public Tank(){};public Tank(TankMap t){tm=t;}//绘制坦克//根据坦克的移动方向,插入不同的坦克的图片public void draw(Graphics g){if(zhuanxiang==1){ImageIcon icon=new ImageIcon("Etank_shang.gif");Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);}else if(zhuanxiang==-2){ImageIcon icon=new ImageIcon("Etank_you.gif");Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);}else if(zhuanxiang==2){ImageIcon icon=new ImageIcon("Etank_zuo.gif");Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);}else{ImageIcon icon=new ImageIcon("Etank_xia.gif");Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);}/*Color c=g.getColor();g.setColor(Color.RED);g.fillOval(x,y,WIDTH,HEIGHT);g.setColor(c);*/move(direction);}//根据方向,移动坦克,不允许坦克移出地图尺寸public void move(Direction d){if(d==Direction.STOP){}else if(d==Direction.UP){zhuanxiang=1;y -= yspeed;if(y<=20)y=20;}else if(d==Direction.RIGHT){zhuanxiang=-2;x+=xspeed;if(x>=800-WIDTH)x=800-WIDTH;}else if(d==Direction.DOWN){zhuanxiang=-1;y+=yspeed;if(y>=600-HEIGHT)y=600-HEIGHT;}else if(d==Direction.LEFT){zhuanxiang=2;x-=xspeed;if(x<=0)x=0;}}//确定用户单机的方向键,修正坦克即将移动的方向public void checkDirection(KeyEvent k){if(k.getKeyCode()==KeyEvent.VK_UP){direction=Direction.UP;}else if(k.getKeyCode()==KeyEvent.VK_RIGHT){ direction=Direction.RIGHT;}else if(k.getKeyCode()==KeyEvent.VK_DOWN){ direction=Direction.DOWN;}else if(k.getKeyCode()==KeyEvent.VK_LEFT){ direction=Direction.LEFT;}if(k.getKeyCode()==KeyEvent.VK_F){fire();}}//发射炮弹的方法public void fire(){}//返回坦克当前位置矩形,便于判断是否与敌方坦克或炮弹重叠public Rectangle getRec(){return new Rectangle(this.x,this.y,this.WIDTH,this.HEIGHT); }}三.敌方坦克的绘制方法public class EnemyTank extends Tank{//初始化敌方坦克的属性public static final int WIDTH=50,HEIGHT=50,xspeed=5,yspeed=5; public int x=400,y=300;public Direction direction=Direction.DOWN;public boolean islive=true;Color color=Color.YELLOW;TankMap tm;//随机数产生器,供敌方坦克随机产生前进方向使用Random r=new Random();public int zhuanxiang;//方向更改限制,避免敌方坦克每移动一次就更改方向int randomCount=r.nextInt(10)+5;//构造方法public EnemyTank(){}public EnemyTank(int wx,int wy,Color c){x=wx;y=wy;color=c;}@Overridepublic void draw(Graphics g){//根据敌方坦克的移动方向插入不同的坦克图片if(zhuanxiang==1){ImageIcon icon=new ImageIcon("Etank_shang.gif");Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);}else if(zhuanxiang==-2){ImageIcon icon=new ImageIcon("Etank_you.gif");Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);}else if(zhuanxiang==2){ImageIcon icon=new ImageIcon("Etank_zuo.gif");Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);}else{ImageIcon icon=new ImageIcon("Etank_xia.gif");Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);}move();}public void move(){//当方向更改限制为0时,产生一个随机方向if(randomCount==0){Direction dirs[]=Direction.values();direction = dirs[r.nextInt(dirs.length-1)];randomCount = r.nextInt(10)+5;}//方向更改限制减1randomCount--;//随机发射炮弹,当产生的随机数大于35时,发射炮弹if(r.nextInt(40)>36){fire();}//确定敌方的坦克的移动if(direction==Direction.UP){y-=yspeed;zhuanxiang=1;if(y<=HEIGHT)y=HEIGHT;}else if(direction==Direction.RIGHT){x+=xspeed;zhuanxiang=-2;if(x>=800-WIDTH)x=800-WIDTH;}else if(direction==Direction.DOWN){y+=yspeed;zhuanxiang=-1;if(y>=600-HEIGHT)y=600-HEIGHT;}else if(direction==Direction.LEFT){x-=xspeed;zhuanxiang=2;if(x<=0)x=0;}}@Overridepublic void fire(){Shell(this.x+WIDTH/2,this.y+HEIGHT/2,this.direction,tm,Color.BLUE,false));}public Rectangle getRec(){return new Rectangle(this.x,this.y,this.WIDTH,this.HEIGHT);}}四.炮弹绘制方法public class Shell {//初始化炮弹的基本属性public final int WIDTH=5,HEIGHT=5,xspeed=14,yspeed=14;public int x,y;Direction dir=Direction.STOP;public boolean islive=true;TankMap tm=null;Color color=Color.RED;boolean isgood=true;boolean isLive=true;//构造方法public Shell(){}public Shell(int xd,int yd,Direction d,TankMap t){ x=xd;y=yd;dir=d;tm=t;}public Shell(int xd,int yd,Direction d,TankMap t,Color c,boolean g){x=xd;y=yd;dir=d;tm=t;color=c;isgood=g;}//绘制炮弹public void draw(Graphics g){if(islive){Color c=g.getColor();g.setColor(color);g.fillOval(x,y,WIDTH,HEIGHT);g.setColor(c);move(dir);}else{}}//炮弹的移动,如果炮弹移动出了地图尺寸,则设定炮弹死亡public void move(Direction d){if(d==Direction.UP){y-=yspeed;if(y<=0)islive=false;}else if(d==Direction.RIGHT){x+=xspeed;if(x>=800)islive=false;}else if(d==Direction.DOWN){y+=yspeed;if(y>=600)islive=false;}else if(d==Direction.LEFT){x-=xspeed;if(x<=0)islive=false;}}public Rectangle getRec(){return new Rectangle(this.x,this.y,this.WIDTH,this.HEIGHT); }//打击坦克方法public boolean hitTank(Tank t){if(this.isLive&&t.isLive&&this.getRec().intersects(t.getRec()) ){//用户坦克生命值减20t.setLife(t.getLife()-20);//如果用户坦克生命值《=0,游戏结束if(t.getLife()<=0){t.setLive(false);t.direction=Direction.STOP;JOptionPane.showMessageDialog(tm,"Game Over!");System.exit(0);}//炮弹死亡this.isLive=false;//产生爆炸Explor e=new Explor(x-3,y-3,this.tm);return true;}return false;}//用户坦克打击敌方坦克的方法public boolean hitTanks(List<EnemyTank>enemyTanks){EnemyTank e;for(int i=0;i<enemyTanks.size();i++){e=enemyTanks.get(i);if(this.getRec().intersects(e.getRec())){e.setLive(false);this.isLive=false;Explor ex=new Explor(x-3,y-3,this.tm);return true;}}return true;}}五.爆炸类源代码:public class Explor {//初始化爆炸属性int x,y;TankMap tm;boolean islive=true;int diameter[]={5,9,13,18,25,31,21,12,6};int step=0;//构造方法public Explor(){}public Explor(int x,int y,TankMap t){this.x=x;this.y=y;this.tm=t;}//绘制爆炸public void draw(Graphics g){//如果爆炸已经发生过,从地图的爆炸集合中移出该爆炸if(!this.islive){return;}//判断爆炸是否发生完if(step==diameter.length){this.islive=false;step=0;return;}Color c=g.getColor();g.setColor(Color.ORANGE);g.fillOval(x, y, diameter[step], diameter[step]);step++;g.setColor(c);}}六.枚举方向源代码package tank;//定义枚举public enum Direction{UP,RIGHT,DOWN,LEFT,STOP;}七.随机血包产生的方法public class Blood{public final int WIDTH=30,HEIGHT=30;public int x= new Random().nextInt(800),y= new Random().nextInt(600);TankMap tm;public void draw(Graphics g){ImageIcon icon=new ImageIcon("blood.gif");Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);}public boolean bloodb(Tank t){if(t.isLive&&this.getRec().intersects(t.getRec())){if(t.getLife()<=60){t.setLife(t.getLife()+40);}else{t.setLife(100);}}return false;}public Rectangle getRec(){return new Rectangle(this.x,this.y,this.WIDTH,this.HEIGHT);}}四、总结。

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

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

Java程序课程设计任务书项目名称:坦克大战游戏的设计与开发英文名:Tank Battle1、主要内容:1、基于java的游戏开发与设计的分析;2、坦克大战游戏的架构搭建与设计实现;3、游戏可以通过用户可以注册新用户,修改自己的密码、个人资料。

2、具体要求1、系统的功能要求:(一)实现玩家试玩游戏功能,屏蔽用户注册和登陆功能(空功能)(二)玩家具备一个或者两个备选坦克战车(三)玩家可以选择一个到两个关卡进行作战(四)玩家可以选择两个敌对阵营中的一个加入,与其他AI战车坦克并肩作战(五)胜利判定条件为:时间制、全杀制(可选)(六)至少提供两个可以自由切换的视角(七)至少提供一种炮弹类型(八)假定项目:如果用户注册,登陆功能能够顺利做好,则提供一个玩家分数上传和排行榜功能。

2、学习并掌握以下技术:数据库的JDBC连接,JA V A编程语言,MySQL数据库的应用;JSP的开发与运用3、熟练使用以下开发工具:JCreator,Myeclipse ,MySQL ,PowerDesigner 等3、进度安排:12月28日~ 12 月29 日:查阅资料,完成文献综述,任务书;12月29 日~ 12月31日:进行系统的需求分析与设计;1月1日~ 1月3日:根据分析进行各个模块程序的设计与创建;1月4日~ 1 月6日:完成各个模块的程序编写;1月7 日~ 1 月8 日:完成全部程序的编写及系统测试;1月9日~ 1 月10日:完成课程设计报告的编写,答辩;摘要随着Java语言的不断发展和壮大,现在的Java已经广泛的应用于各个领域,包括医药,汽车工业,手机行业,游戏,等等地方。

Java游戏的开发为满足人们娱乐所需而设计。

本游戏为坦克大战游戏,是基于Java的图形用户界面而开发的,可以放松心情的小游戏。

游戏从系统操作简便、界面友好、灵活、上手即会的基本要求出发,完成整款游戏的开发。

游戏更设置了暂停、计分、音乐、速度,用户信息保存等功能,可以根据自己的爱好,挑战更高难度,为用户带来愉悦的体验。

java课程设计--坦克大战游戏(带源码)

java课程设计--坦克大战游戏(带源码)
g.setColor(Color.RED);
g.drawRect(x,y-5, WIDTH,5);
int w=WIDTH*life/100;
g.fillRect(x, y-5, w, 5);
g.setColor(c);
}
}
private class BloodBar_B{
public void draw(Graphics g){
}
Graphics gOffScreen=offScreenImage.getGraphics();
Color c=gOffScreen.getColor();
gOffScreen.setColor(Color.GRAY);
gOffScreen.fillRect(0, 0,GAME_WIDTH,GAME_HEIGHT);
g.drawString("击中个数:"+explodes.size(),10,70);
g.drawString("坦克数量:"+tanks.size(),10,90);
g.drawString("生命值:"+myTank.getLife(),10,110);
if(tanks.size()<=0){
public static final int HEIGHT = 30;
private boolean live = true;
private BloodBar_G bb_G=new BloodBar_G();
private BloodBar_B bb_B=new BloodBar_B();
private int life =100;
Color c=g.getColor();

坦克大战开发毕业设计(论文)

坦克大战开发毕业设计(论文)

毕业设计(论文)坦克大战开发摘要进入新世纪以来,计算机游戏业蓬勃发展,已成为新世纪最热门的专业。

坦克大战是一款非常经典。

风靡全球,经久不衰的游戏。

1985年推出的坦克大战(Battle City)由13×13大小的地图组成,地形包括砖墙、海水、钢板、森林、地板5种,玩家作为坦克军团仅存的一支精锐部队的指挥官,为了保卫基地不被摧毁而展开战斗。

游戏以其出色的游戏性感染的一代又一代的玩家。

本程序主要由C#编写。

本文的坦克大战有完整的界面,能够实现人机大战,。

而且坦克大战剧情非常简单,游戏的主角在保护好城堡的前提下,消灭所有的敌人,所以非常容易上手。

本论文第一章是介绍国内外的游戏发展状况,第二章介绍坦克大战的总体设计,第三章是游戏涉及的技术问题,最后总结。

关键词:坦克大战;游戏;技术;代码第一章游戏的背景相信喜欢玩游戏的朋友都是从玩最初的“小霸王”,超级玛丽,坦克大战,等等一系列经典的小游戏开始,然后就是三国志之类的大型一点的,到现在的电脑游戏,单机游戏,到网络游戏,这么一个过程,游戏其实已经不知不觉的进入了我们的生活。

电脑游戏在当今,已经十分普遍了,游戏玩家也比较多。

特别是网络游戏,因为其剧情的有趣性,游戏画面的美观,招式的华丽,等一系列原因,吸引了不少游戏玩家,特别是3D网游的推出,使得网络游戏发展进入了一个新时期。

游戏是怎么发展起来的?国内外游戏的发展情况是什么样的呢?下面将会给你答案。

真正的电子游戏机产生于20世纪70年代。

1971年麻省理工学院的学生Nolan Bushnell设计了世界上第一个业务用游戏机(俗名街机),叫做《电脑空间》(Computer Space)。

《电脑空间》的主题是两个玩家各自控制一艘太空战舰围绕这具有强大引力的星球向对方发射导弹进行攻击。

两艘战舰在战斗的同时还必须注意克服引力,无论是被对方的导弹击中还是没有成功摆脱引力,飞船都会坠毁。

这台游戏机用一台黑白电视作为显示屏,用一个控制柄作为操作器,不过由于市场因素这款游戏以失败告终。

课程设计报告--坦克大战

课程设计报告--坦克大战

目录一.问题定义 (1)1. 项目名称 (1)2. 项目目标 (1)3. 选题背景 (1)二.可行性研究 (1)1.技术可行性 (1)2. 经济可行性 (1)3. 操作可行性 (1)三.需求分析 (2)1. 游戏内容需求 (2)2. 游戏规则 (3)四.游戏设计 (3)1. 类的设计 (3)2. 游戏流程 (4)1. 主流程 (4)2. 游戏初始化 (5)3. 游戏运行 (6)3. 游戏序列图 (14)游戏初始化 (14)键盘按下事件 (15)游戏运行 (15)玩家坦克处理 (16)电脑坦克处理 (17)炮弹碰撞处理 (19)坦克碰撞处理 (19)游戏结束 (20)五.游戏代码 (21)CGameMain类 (21)CTankPlayer类 (32)CTankEnemy类 (36)CBullet类 (42)CWeapon类 (49)六.实验总结 (53)一.问题定义1.项目名称坦克大战2.项目目标综合运用C++及其面向对象的知识开发一款小游戏。

3.选题背景相信大部分同学都玩过或看过“坦克大战”这款经典游戏。

现在,就由我自己动手来开发它。

因为之前的学习,我具备了C++语言和面向对象的基础知识,在这个基础上按照实验指南的指导一步一步进行下去,把这款经典游戏做出来。

巩固之前所学知识也学习新的知识。

二.可行性研究1.技术可行性本游戏采用 FunCode和Visual C++6.0进行开发,基于Windows xp和Windows7操作系统。

Funcode软件提供了大量基础类库,可以快速方便地构造出游戏软件。

之前课程学习过C++,具有一定的C++语言开发基础,对面向程序设计有一定了解。

2.经济可行性此次课程设计由我一人完成,只需装有Funcode及Visual C++的电脑一台,无资金需求;且制作出来的游戏软件并不打算发行,也无后期资金需求,经济完全可行。

3.操作可行性本游戏只需用W、A、S、D来移动,用J键进行攻击,操作十分简单,界面友好,符合用户操作习惯。

坦克大战设计与实现

坦克大战设计与实现

目录1 绪论 (1)1.1 国内外单机游戏的研究现状 (1)1.2 研究意义 (2)2 开发环境和相关技术的介绍 (2)2.1 开发环境 (2)2.2 Java的特点 (3)2.3 关于Eclipse (5)3 系统的分析 (6)3.1可行性分析 (6)3.2需求分析 (7)4 系统功能及相关技术 (7)4.1 游戏功能 (7)4.2 游戏规则 (7)4.3 游戏界面和操作方式 (8)4.4 本程序需解决的有关技术问题 (8)4.5 相关技术的介绍 (9)4.5.1 关于JFrame (9)4.5.2 绘图技术 (9)4.5.3 事件监听机制 (10)4.5.4 关于多线程 (11)5 系统的总体设计 (12)5.1 TankWarClient.java (12)5.2 Tank.java (12)5.3 Bullet.java (13)5.4 Explode.java (13)5.5 Missile.java (13)5.6 Wall.java (13)5.7 Direction.java (14)6 系统的详细设计与实现 (14)6.1 游戏窗口与我的坦克 (14)6.1.1 窗口 (14)6.1.2 面板中加入坦克 (15)6.1.3 让坦克动起来 (17)6.2 坦克作战 (18)6.2.1 添加子弹、超级子弹类 (18)6.2.2 打出子弹 (19)6.2.3 将敌人坦克击毙 (19)6.2.4 爆炸效果 (20)6.3 系统优化 (20)6.4 坦克大战系统炮弹功能测试 (22)6.4.1 按CTRL打炮弹的测试 (22)6.4.2 功能测试图 (22)7 总结 (23)附录 (24)参考文献 (51)致谢 (52)1 绪论1.1 国内外单机游戏的研究现状近年来,因特网在国内迅速普及,导致了网络游戏的高速发展。

单机游戏市场呈现爆炸式的发展。

尤其是国内外巨大的个人电脑拥有量,更是让商家看到了商机,手机游戏市场利润将会十分丰厚。

坦克大战详细设计说明书

坦克大战详细设计说明书

软件详细设计说明书一、TankWar类:TankWar继承Frame类。

1、paint( )方法paint( ) 方法主要实现对坦克类和子弹类,障碍物类和爆炸类等画到窗口上。

坦克类又分为MyTank和EnwmyTank 两类。

对这两类用不同的颜色画到窗口上。

画子弹时通过传递坦克的颜色画出相应的子弹颜色。

子弹画坦克死亡则不再对其进行重画。

2、update( )方法。

update( ) 方法主要是为了解决,重画频率太快,paint( ) 方法还没有完成,重画坦克时出现的闪烁现象。

通过双缓冲技术将所有东西画在虚拟图片上,一次性显示出来解决闪烁现象。

3、内部类KeyMon键盘监听KeyMon继承KeyAdapter类。

通过KeyMon类的监听,用户可以通过键盘控制自己的坦克。

4、内部类MyTankWarThreadMyTankWarThread实现Runnable接口,通过MyTankWarThread实现对坦克的重画,实现坦克的移动。

5、showFrame( )方法showFrame( )方法主要是设置一个窗口及其各种参数。

二、Tank类Tank类是实现Runnable接口的一个抽象类1、Tank类的主要属性有:int x; //坦克的位置int y; //int oldx; //坦克上一步的坐标int oldy; //Dir dir; // Tank方向的成员变量int speed = 5;boolean isLive = true;2、Tank类提供各种的构造方法Tank(int x, int y)Tank(int x, int y, Dir dir)Tank(int x, int y, Dir dir, TankWar tw)根据不同的需要使用不同的构造方法。

3、drawTank ()方法drawTank()方法根据坦克的类型不同可以画出不同类型的坦克和不同方向的坦克。

敌人的坦克用BLUE画出来,自己的坦克用RED颜色画出来,以区分敌我。

Java版坦克大战游戏毕业设计

Java版坦克大战游戏毕业设计

1 引言1.1开发背景随着人们精神文化生活的日益丰富,为了让我们在闲暇的时间多方面发展个人的兴趣爱好,为了更好地开发个人智力,游戏成为人们生活中不可缺少的一部分。

游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。

作为休闲游戏的起源应该追溯到早期的俄罗斯方块和坦克大战,坦克大战是童年经常玩的游戏,也是一款经典游戏。

《坦克大战》游戏几乎家喻户晓,对我们80后90后而言,是童年最珍贵的回忆。

此款游戏是一款以红白机为平台操作射击游戏[1],玩家可以控制自己的坦克,以歼灭对方的坦克,其操作方式及其简单,是一款男女老少皆宜的游戏。

为了满足人们的个性化需求,使玩家在游戏的过程中,更能体验游戏本身的乐趣,也为了满足更好的用户体验,市场上逐渐出现了《墨水坦克大战[2]》,它是经典坦克大战的姊妹游戏,只有手机版,没有PC版,所以决定在自己大学毕业之时,开发一个PC版的《墨水坦克大战》。

1.2国内外单机游戏的研究现状近年来,由于经济的迅速发展,科技日新月异的变化,越来越多的人会把电脑作为一种娱乐工具,而不仅仅是用它来工作,单机游戏又凭借自身操作简单,价格低廉,对电脑的配置要求低,有利于各个阶层各个行业人士使用,并且有益于身心健康,在琳琅满目的游戏中脱颖而出。

但是,对于我国国内单机游戏而言,还处于起步阶段,有着较大的商业潜力,但是也存在着正版维护意识不强,从而使得盗版有机可乘,影响市场的健全发展,还需要得到进一步的更健全的发展[3]。

1.3研究意义单机游戏由于其不必联入互联网也可以进行游戏,从而摆脱了很多限制,只要有一台电脑即可体验游戏带来的欢乐,现在许多的单机游戏都是精工细致而成的,更能呈现出友好的界面,流畅的画面,悦耳的背景音乐,良好的游戏性。

《墨水坦克大战》只有手机版,使得手机屏幕小或者配置低的用户很难体验到《墨水坦克大战》的妙趣横生,开发PC版的《墨水坦克大战》势在必行。

坦克大战开发毕业设计

坦克大战开发毕业设计

坦克大战开发毕业设计坦克大战是一款基于坦克对战的游戏,是游戏界非常经典的一款作品。

本文将介绍一个以坦克大战为主题的游戏开发毕业设计。

该设计旨在通过开发一个基于多人对战的坦克大战游戏,提供给玩家一个真实的坦克战场体验。

首先,该游戏将有一款精致而逼真的游戏场景。

在游戏中,玩家将能够感受到真实的战争氛围,场景中将有各种地形,如沙漠、森林、城市等,玩家可以根据自己的喜好选择喜欢的场景进行战斗。

游戏场景中的物体会有真实的物理特性,如树木会被坦克攻击破坏,建筑物将会倒塌等。

这些元素将增加游戏的可玩性和真实感。

游戏中将有多种类型的坦克可以选择,每种坦克都拥有不同的特性和能力,例如护甲强度、火力威力、机动性等。

玩家可以根据自己的游戏风格和战术选择适合自己的坦克。

此外,游戏中还会有不同的武器和道具可供使用,如导弹、炮弹、护盾等,玩家可以根据战斗需求使用不同的武器和道具。

为了提供更好的游戏体验,本毕业设计将开发一个在线多人对战的功能。

玩家可以与来自世界各地的其他玩家组成队伍,在真实的战场上进行对战。

游戏提供了实时语音和聊天功能,玩家可以与自己的队友进行实时沟通,制定战术和策略。

同时,游戏还会有各种有趣的活动和比赛,玩家可以通过参加这些活动和比赛来获得更多的奖励和荣誉。

此外,游戏还将提供一个个人和团队的排名系统。

玩家可以通过战斗胜利来提升自己在排名中的位置,还可以通过与队友一同进行战斗来提升团队在排名中的位置。

游戏还会有一个成就系统,玩家可以通过完成各种任务和挑战来解锁不同的成就,并获得游戏内的奖励。

最后,为了保证游戏的稳定和流畅,本设计将采用先进的游戏引擎和服务器技术。

游戏引擎可以支持高质量的图形和动画效果,服务器技术可以保证游戏的在线功能的稳定性和流畅性。

总之,本毕业设计将开发一个基于多人对战的坦克大战游戏,通过提供真实的战争场景、多样化的坦克和武器、在线对战和排名系统来提供给玩家一个真实的坦克战场体验。

这个设计将会非常有挑战性和创新性,对于毕业生来说,这将是一个非常好的毕业设计项目。

《坦克大战》系统分析设计

《坦克大战》系统分析设计

《坦克大战》系统分析设计文档目录一、系统功能模块 (1)1. 战斗模块: (1)1.1 移动模块 (1)1.2 射击模块 (2)1.3 生命值模块 (3)1.4 碰撞检测模块 (3)1.5 对象创建模块 (4)1.6 积分模块 (4)1.7 作弊模块 (5)1.8 道具模块 (5)2. 面板绘图模块 (6)3. 事件处理模块 (6)二、程序关键类说明 (7)1. Tank类 (7)2. Missile类 (8)3. TankLocal类 (9)4. BloodTool类 (10)一、系统功能模块整个游戏系统利用面向对象语言Java编写,程序可大致分为以下几个大模块:坦克大战事件处理模块战斗模块面板绘图模块更详细可将战斗模块做以下分解:战斗模块生命值模块碰撞检测模块积分模块射击模块作弊模块道具模块移动模块对象创建模块1. 战斗模块:1.1 移动模块●模块描述:使玩家与电脑坦克能够自由并且匀速流畅的进行移动,通过按下和松开键盘上的方向键来实现移动和停止移动。

●设计方案:我们对传统的坦克四向移动方式其进行了完善,将原本的四向移动完善为八向移动,即除了传统的上下左右移动之外,还增加了斜向移动,也就是左上、左下、右上、与右下。

除了可以按住单个方向键进行四向移动之外,还可以同时按住两个互不相反方向键来进行斜向移动的实现,松开方向键之后坦克停止移动,同样,电脑控制的坦克也是八向的移动方式,这样就增加了更多的不确定因素,游戏的耐玩性和挑战性得到了提高。

●关键技术介绍:在tank类中定义一个枚举类表示方向,其中包括9个固定方向对象:八个方向+stop静止,方便直接调用这些固定对象;对主站坦克,即玩家的坦克设置布尔类型的方向标志位,再通过switch...case...语法对玩家按键情况进行检测,于是可以检测出玩家按下的两个键,最后通过调用位移方法达到移动的目的。

1.2 射击模块●模块描述:使玩家与电脑控制的坦克能够流畅并且自由但是有限制的发射子弹,通过按下和松开键盘上的空格键来实现射击和停止射击,子弹弹道以直线匀速的形式飞出。

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

湖北大学J A V A课程设计论文题目坦克大战游戏姓名张诚学号 ****************姓名柳谦学号 ****************专业年级计算机科学与技术1401 指导教师王雷春职称副教授2016年 5月目录绪论 (4)1背景 (4)2课程设计目标及目的 (5)2.1课程设计的目标 (5)2.2课程设计的目的 (5)2.3可行性分析 (5)2.3.1技术可行性 (5)2.3.2经济可行性分析 (6)3概要设计 (6)4详细设计 (7)4.1项目与类的结构图 (7)4.2 各类实现的功能概要 (7)4.2.1 barrier包 (7)4.2.2 lightButton包 (7)4.2.3 Tankwar包 (7)4.2.4 mapediter包 (8)4.3 主要类的的UML图及主要成员变量和函数说明 (8)4.3.1 Barrier类 (8)4.3.2 LightButton类 (11)4.3.3 Mapediter类 (13)4.3.4 Main类 (15)4.3.5 Boom类 (18)4.3.6 Item类 (18)4.3.7 Missle类 (21)4.3.8 PanelShow类 (25)4.3.9 Tank类 (26)4.3.10 TankWar 类 (33)5运行结果 (40)6总结 (47)7参考文献 (47)8附录 (48)坦克大战摘要坦克大战是一款最初由日本南梦宫Namco游戏公司1985年在任天堂FC平台上,推出的一款多方位平面射击游戏。

一经推出,人气十分高涨,然后又陆续推出了GB,PC等版本,玩法也大大扩充,由最初的单人2D过关演变到如今的多人3D联网对战游戏,我们小时候应该都体验过,之前C#课程中已经了解过有关信息,如今就想同样以Java为载体编写一款坦克大战。

本课题展示了如何使用Java编写出能够实际运行的单人版坦克大战游戏。

课题介绍了项目的功能、类的设计和逻辑难点等重要点。

通过本课题,你可以了解到有关Java开发在实际运用中的基础知识、并对应用游戏开发有一定的新的认识。

绪论Java是由Sun Microsystems公司推出的Java面向对象程序设计语言。

Sun 公司在推出 Java 之际就将其作为一种开放的技术。

全球数以万计的Java 开发公司被要求所设计的Java软件必须相互兼容。

其官方定义是:“Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

”。

其一经推出,就获得了众多程序员的青睐,发展至今已有21年的历史,仍然是当今最受追捧得的变成语言之一。

我们已经初步了解了Java的有关知识,想切身体验一下Java编程语言的特点,同时老师也要求我们完成课程设计,加上回想起小时候玩过的坦克大战游戏,于是就有了此设想。

1背景2015年11月编程语言排行榜中,Java语言仍然在持续上涨,其份额已经达到了20%占据榜首。

加上基于java开发的安卓手机系统是当今无可置疑的市场第一位,同时互联网也发展迅速,而在web开发领域,java也处于领导地位,当前很长一段时间之内,java编程语言的前途十分光明,我们很有必要掌握这门技术。

同时人们对游戏的热情经久不衰,而其中坦克大战作为一个推出已有10余年的游戏,其活力仍不减当年,至今仍有各种各样版本的坦克大战在各大平台上运行。

于是我们便想运用java开发一个简单的坦克大战游戏。

2课程设计目标及目的2.1课程设计的目标运用Java编程语言,编写出能够实际运行的单人坦克大战游戏2.2课程设计的目的1.了解Java应用游戏的开发基础2.获取有关Java编程开发的实际知识3.锻炼自身动手实践能力4.切身体验Java编程开发步骤5.于动手操作过程中验证所学知识2.3可行性分析2.3.1技术可行性我们设计的坦克大战入门版并没有什么高深的技术难题,尚未涉及到联网等事件,经查阅资料,我们认定,补充部分课堂外的知识,自身完全能够制作一个简单的坦克大战。

2.3.2经济可行性分析本组制作的坦克大战为入门版游戏,网上资源比较丰富,书籍图书馆也有收藏,除需花费一定时间外,无需其他经济支出,故较容易实现3概要设计本程序是一个有趣且富有挑战性的2D单人游戏。

本游戏为彩色界面,有主菜单,选择菜单等功能,其中主菜单包含有Start,Map,Help,Abort,Exit五个选项。

游戏过程中,玩家操纵己方坦克摧毁敌方坦克保卫己方家园以获得分数奖励。

4详细设计4.1项目与类的结构图4.24.2.1 barrier包Barrierlei类:描述素材的基本属性及排布方法EnemyBorn类:描述敌人出生点Gold类:描述金块障碍物Home类:描述基地Iron类:描述铁块障碍物SelfBorn类:描述自身出生点Wall类:描述砖块障碍物4.2.2 lightButton包LightButton类:实现初始界面的按钮动态点击效果,按下有下凹质感且亮度变化4.2.3 Tankwar包Help类:主界面help按钮呼出文本显示框Boom类:爆炸判定,效果显示Item类:随机掉落物品奖励Main类:游戏主界面Missle类:炮弹运行PanelShow类:右边统计栏信息Tank类:坦克基本属性,行动方式Tankwar类:游戏运行主界面4.2.4 mapediter包Mapediter类:查看地图,编辑新地图并检验地图是否合乎规则,保存地图。

4.3 主要类的的UML图及主要成员变量和函数说明4.3.1 Barrier类4.3.2 LightButton类4.3.3 Mapediter类2.dit 类4.3.4 Main类4.3.5 Boom类4.3.6 Item类4.3.7 Missle类4.3.8 PanelShow类4.3.9 Tank类style : intpower : intspeed : intdir : DirectionmyPlane_U : ImageIcon myPlane_R : ImageIcon myPlane_D : ImageIcon myPlane_L : ImageIconup : booleanleft : booleanright : booleandown : booleanself : booleanlive : booleanallTank : ArrayList<Tank> walls : ArrayList<Wall> irons : ArrayList<Iron> golds : ArrayList<Gold> home : Homemissles : ArrayList<Missle> noFire : longbooms : ArrayList<Boom>4.3.10 TankWar类5运行结果主界面开始运行结果Start复选界面地图制作界面Help信息栏界面:Abort信息栏界面:6总结在开发的过程中,本小组遇到了不少问题,各种开发包的缺少,严谨的各种参数合理的设置,解决开发中遇到的bug等等,但是经过上网搜索和自己尝试,终于解决了问题。

在这个过程中,不仅积累了知识,学会了团结合作,更重要的是学会了寻找信息的方法,对于日后的学习大有帮助。

由于能力不足,尚有很多设想未能实现,比如过关的游戏模式,boss的加入等等,我们将继续深入学习java,不断完善游戏的模式。

7参考文献1.Java 2 实用教程清华大学出版社 20112.Java游戏编程科学出版社 20043.Java游戏编程原理与实践教程人民邮电出版社 20134.韩顺平_循序渐进学java_从入门到精通_课件_笔记_坦克大战全过程/view/f7a2e083bceb19e8b8f6ba7f5.参考网站:////6.图片出自:/index.html8附录1.小组分工.docx2.代码文件:tankedanzhan1\src\barrier\Barrier.java tankedanzhan1\src\barrier\EnemyBorn.java tankedanzhan1\src\barrier\Gold.javatankedanzhan1\src\barrier\Home.javatankedanzhan1\src\barrier\Iron.javatankedanzhan1\src\barrier\SelfBorn.java tankedanzhan1\src\barrier\Wall.javatankedanzhan1\src\lightButton\LightButton.java tankedanzhan1\src\mapediter\MapEdit.java tankedanzhan1\src\tankwar\Abort.java tankedanzhan1\src\tankwar\Boom.java tankedanzhan1\src\tankwar\Help.javatankedanzhan1\src\tankwar\Item.java。

相关文档
最新文档