基于java坦克大战课程设计报告

合集下载

坦克大战 实验报告

坦克大战 实验报告

本科实验报告课程名称:Java语言程序设计实验项目:TankWar实验地点:致远楼B403专业班级:软件工程1219 学号:2012005496 学生姓名:柴丁方指导教师:任少斌2014年 1 月7 日import java.awt.*;import java.awt.event.*;public class TankWarClient extends Frame {//构造游戏开始的界面public void KaiShiJieMian() {this.setLocation(400,200); //游戏窗口的左上点在屏幕的位置this.setSize(800, 600);//游戏窗口的尺寸//使按窗口的“X”时,可以关闭程序较上一次实验添加的代码段为:public void paint (Graphics g) {Color c = g.getColor();//color类是 java。

awt 中的,因此可以直接 color cg.setColor(Color.green);// 类 java.awt.Graphics 中的方法,将此图形上下文的当前颜色设置为指定颜色。

g.fillOval(50, 50, 30, 30);//int x, int y,int width,int height,分别为坐标与椭圆的长宽g.setColor(c);}变更2:较上一次实验添加的代码段为:1.更改如下代码段中的“常量值”为“x”“y”,使所填充的椭圆位置可以随值改变,为静态的图形动起来打下了基础。

static int x=50,y=50;实验四:从版本0.4到版本0.41变更1:变更2:较上一次实验添加的代码段为:1.public class TankWarClient extends Frame {Image offScreenImage = null;}//先把内存的offScreenImage清空较上一次实验添加的代码段为:1.TankWarClient类中:2.3.较上一次实验修改的代码段为:public class Tank {public static final int XSPEED = 5;public static final int YSPEED = 5;private int x, y;private boolean bL=false, bU=false, bR=false, bD = false;enum Direction {L, LU, U, RU, R, RD, D, LD, STOP};private Direction dir = Direction.STOP;//此处为构造函数。

坦克大战报告

坦克大战报告

JAVA程序开发课程设计课程大作业专业:软件工程班级:14软工2学号: ***********名:***项目名称:坦克大战一、需求分析:1.基本功能:(1)我方坦克能上下移动(2)敌方坦克能自由移动(3)我方坦克能开火(4)敌方坦克能自由开火(5)子弹打中我方,会减血,我方打中敌方,敌死。

敌打敌不会受伤(6)有血条,主界面2.扩展功能(1)用图形来表示坦克和炮弹(2)用图形来表示中子弹后的爆炸效果(3)地图上存在金属墙,我方坦克和子弹不能穿过(4)地图上存在曹村,我方和敌方坦克能够自由穿过,子弹也一样(5)地图上会随机出现加血包(6)我方坦克遇到加血包,会增加生命(7)游戏开始时,会启动背景音乐(8)我方坦克死亡时,提示游戏结束二、系统设计:1. BgMusic(1)主要功能:添加背景音乐TankMap类通过调用该类,并读取BgMusic包下面的背景音乐文件(2)成员属性:1)filename,用于记录读取到的文件名,并处理2)nBytesRead,这是缓存,用于读取音乐文件,缓存下来(3)成员方法:1)run,播放背景音乐2)构造方法BgMusic,将读取到的文件名,存储到成员属性filename中2. Blood(1)主要功能:地图中添加血包(2)成员属性:1)x,y,width,height,血包的位置以及宽高2)rpos_x,rpos_y,用于记录血包移动后的位置3)tm,调用TankMap类,并在地图中放血包4)live,血包的存活,被坦克吃了就消失5) blood,用于记录血包的存活6)step,血包的步长7)stepMove,血包走过总的步长(3)成员方法:1)Blood,构造方法,将血包放到地图中2)draw,画血包3)move,血包的移动4)getRect,获取血包的位置3. Tank(1)主要功能:地图中添加我方坦克(2)成员属性:1)WIDTH,HEIGHT,xspeed,yspeed,坦克的宽高和x,y上的移动速度2)x,y,direction,我方坦克出现的初始位置和初始状态3)tm,调用TankMap类,并在地图中放坦克4)isLive,我方坦克是否存活5) isgood,坦克属于哪一方6)life,我方坦克的初始生命值7)step,使用Blood类,血包随机出现8)upimage,rightimage,downimage,leftimage,oldimage,存放坦克图片(3)成员方法:1)draw,绘制坦克2)move,根据移动方向,移动坦克,不允许坦克移除地图3)checkDirection,确定用户单击的方向键,修正坦克即将移动方向4)fire,发射子弹5)getRec,返回坦克当前位置,便于判断是否与敌方坦克或子弹重叠6)stay,坦克撞墙的处理7)eat,我方坦克吃血包4.EnemyTank(1)主要功能:地图中添加敌方坦克(2)成员属性:1)WIDTH,HEIGHT,xspeed,yspeed,坦克的宽高和x,y上的移动速度2)x,y,direction,我方坦克出现的初始位置和初始状态3)tm,调用TankMap类,并在地图中放坦克4)islive,我方坦克是否存活5)enemytank,存放坦克图片(3)成员方法:1)draw,绘制坦克2)move,根据移动方向,移动坦克,不允许坦克移除地图3)fire,发射子弹4.Explor(1)主要功能:子弹打中坦克,发生爆炸效果(2)成员属性:1)x,y,坦克出现的位置2)tm,调用TankMap类,并在地图中放爆炸3)islive,我方坦克是否存活(3)成员方法:1)draw,绘制爆炸2)Explor,爆炸的构造方法5.Help(1)主要功能:给用户游戏帮助(2)成员属性:1)help,将帮助的文字存放在字符串中(3)成员方法:1)getHelpDialog,调用帮助6.Shell(1)主要功能:设计子弹(2)成员属性:1)WIDTH,HEIGHT,xspeed,yspeed,子弹的宽高和x,y上的移动速度2)x,y,direction,子弹出现的位置和方向3)tm,调用TankMap类,并在地图中放子弹4)isLive,子弹是否打中坦克5)isgood,是否是我方6)Image,加载子弹图片(3)成员方法:1)draw,绘制子弹2)move,根据移动方向,移动坦克,得到子弹的移动3)getRec,获取坦克的位置4)hitTanks,子弹打坦克5)hitWalls,子弹打墙7.Wall(1)主要功能:给地图添加墙(2)成员属性:1)x,y,w,h,墙的位置和宽度高度2)tc,地图(3)成员方法:1)draw,画墙2)getRect,获取墙的位置8.TankMap(1)主要功能:地图(2)成员属性:1)MAPWIDTH,MAPHEIGHT,地图的宽高2)t,我方坦克3)bufferImage,缓冲,用于解决闪屏4)forestimage,草丛5)shells,EnemyTank,Blood,Explors泛型6)enemyCount,敌方坦克数量7)w1,w2,不可穿过的墙(3)成员方法:1)init,初始化地图2)paint,画血包,地图,坦克等3)addBloods,加血4)update,解决闪屏三、功能实现:1.功能1:我方,敌方坦克上下移动并开火(1)操作说明游戏启动时,按上下左右键可以是我方坦克移动,按F键可以开火(2)关键代码//绘制坦克public void draw(Graphics g){//根据不同方向加载不同图片,读取的时候需要处理异常try{switch(direction){case STOP:case UP:upimage=ImageIO.read(new File("src/images/up.gif"));oldimage=upimage;g.drawImage(upimage, x, y, null);break;case RIGHT:rightimage=ImageIO.read(new File("src/images/right.gif"));oldimage=rightimage;g.drawImage(rightimage, x, y, null);break;case DOWN:downimage=ImageIO.read(new File("src/images/down.gif"));oldimage=downimage;g.drawImage(downimage, x, y, null);break;case LEFT:leftimage=ImageIO.read(new File("src/images/left.gif"));oldimage=leftimage;g.drawImage(leftimage, x, y, null);break;}}catch (IOException e) {};g.drawImage(oldimage, x, y, null);move(direction);}//根据移动方向,移动坦克,不允许坦克移出地图public void move(Direction d){/*** 记录坦克原来的位置,撞墙可以回到原位置*/oldX=x;//记录坦克原来的位置,撞墙可以回到原位置oldY=y;if(d == Direction.STOP){}else if(d == Direction.UP){y-=yspeed;if(y<=HEIGHT)y=HEIGHT;}else if(d==Direction.RIGHT){x+=xspeed;if(x>=800-WIDTH)x=800-WIDTH;}else if(d==Direction.DOWN){y+=yspeed;if(y>=600-HEIGHT)y=600-HEIGHT;}else if(d==Direction.LEFT){x-=xspeed;}2.功能2:我方开火,敌方会爆炸,然后死亡。

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

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

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

基于Java面向对象程序设计课程报告

基于Java面向对象程序设计课程报告

基于Java语言的简易坦克大战游戏设计课程报告摘要:本课程设计使用Java语言开发了一个简单坦克大战小游戏,主要采用面向对象程序设计思想来完成程序的需求分析,概念及逻辑设计,系统的详细实现等过程。

游戏主要实现了游戏场景的构造,坦克及子弹类的初始化,敌我坦克对战,游戏存盘及读档等功能。

关键词:Java;面向对象;敌我坦克对战;引言坦克大战是一个经典的单机对战游戏,其在青少年中非常流行,目前游戏开发商对其不断改进,已从简单的单机手游扩充为大型的网络对战游戏,但其基于面向对象程序设计思想仍未变。

本设计是为检验面向对象程序设计课程的知识运用而进行的实践,其主要目的是采用面向对象的思想,独立完成程序的各个过程,并在实践中应用学到的关于Java类与对象,接口,包,异常处理,多线程,事件处理及各类流的处理等知识。

1.系统分析1.1系统可行性分析在技术上,本系统的坦克大战是基于Java语言设计,并在Eclipse软件上具体实现的。

Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,具有简洁,安全,面向对象,动态,体系结构中立,可移植,高性能,多线程,解释执行,分布式等特性。

Java现在主要用在WEB开发,手机游戏及一些平台游戏的开发,因为其具有良好的跨平台性,在各类电子产品上应用非常广泛。

本系统使用Swing,GUI,Socket,面向对象设计等技术实现,这些技术已非常成熟,广泛应用于各类程序开发,故现在使用这些技术是可行的。

在实用性上,坦克大战为一款经典射击游戏,其前身为1985年日本游戏公司在任天堂FC(FamilyComputer)平台上开发的红白单机游戏,游戏以坦克战斗及保卫基地为主题,凭借流畅的游戏体验,不错的游戏视觉效果风靡全世界。

直到今天,仍有游戏商家以其为模型开发出3D网络对战版坦克大战,可见其具有广大的市场效益。

本系统运用Java跨平台编程语言,在PC上重新实现这一经典游戏,探究其设计思路与实现方法,并且设计了关卡模式,新增了游戏存盘,读档功能,使游戏玩法更加丰富。

JAVA坦克大战课程设计

JAVA坦克大战课程设计

JAVA坦克大战课程设计实验报告专业班级:计算机学号:201110000姓名:指导老师:JAVA坦克大战课程设计一、课程设计目的Java坦克大战程序设计的课程程序设计是我们学习完Java语言程序设计课程后,进行的一次全面的综合设计,其目的是加深对理论教学内容的理解和掌握,使学生综合运用.学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下基础。

二、课程设计的预备知识和实验环境熟悉Java语言以及eclipse开发工具,实验环境为JDK1.6。

三、课程设计的主要内容坦克大战游戏是在eclipse环境下编程的游戏,其中包括对主坦克的编写、坦克的初始位置的编写、坦克移动方向的编写、坦克的速度的编写、坦克子弹速度的编写、敌对坦克子弹速度的编写、敌对坦克的编写等等。

游戏主要实现的功能有:1.能够四处移动2.能够打击敌人3.敌人能够移动4.能够模拟爆炸5.能够产生障碍6.能够增长生命四、程序具体设计1.版本0.1~0.2实现的主要功能:产生一个不能修改大小的窗体,并实现关闭窗体的事件处理。

源代码如下:2.版本0.3~0.5实现的主要功能:画出代表坦克的同心圆;让坦克运动起来;使用双缓冲来消除坦克移动时的闪烁现象;利用代码重构将以后可能需要多处修改的量定义为常量,例如窗体的宽度和高度(常量名一般为大写)主要代码如下: public class TankClient extends Frame {int x = 50, y = 50;public void paint(Graphics g) {Color c = g.getColor();g.setColor(Color.RED);g.fillOval(x, y, 30, 30);g.setColor(c);y += 5;}使用paint 方法来画出坦克,并将坦克的位置设置成变量来实现坦克的移动。

p ublic void lauchFrame() {this.setLocation(400, 300);this.setSize(800, 600);this.setTitle("TankWar");this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}this.setResizable(false);this.setBackground(Color.GREEN);setVisible(true);new Thread(new PaintThread()).start();}public static void main(String[] args) {TankClient tc = new TankClient();uchFrame();}private class PaintThread implements Runnable {public void run() {while(true) {repaint();try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}}}使用update来实现双缓冲结局移动时的闪烁问题public void update(Graphics g) {if(offScreenImage == null) {offScreenImage = this.createImage(GAME_WIDTH, GAME_HEIGHT);}Graphics gOffScreen = offScreenImage.getGraphics();Color c = gOffScreen.getColor();gOffScreen.setColor(Color.GREEN);gOffScreen.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);gOffScreen.setColor(c);paint(gOffScreen);g.drawImage(offScreenImage, 0, 0, null);}在lauchFrame方法中启动线程,来实现坦克的移动,并加入sleep方法使移动出现延时。

基于Java面向对象程序设计课程报告.doc

基于Java面向对象程序设计课程报告.doc

基于Java面向对象程序设计课程报告.word教育资料基于Java语言的简易坦克大战游戏设计课程报告摘要:本课程设计使用Java语言开发了一个简单坦克大战小游戏,主要采用面向对象程序设计思想来完成程序的需求分析,概念及逻辑设计,系统的详细实现等过程。

游戏主要实现了游戏场景的构造,坦克及子弹类的初始化,敌我坦克对战,游戏存盘及读档等功能。

关键词:Java;面向对象;敌我坦克对战;引言坦克大战是一个经典的单机对战游戏,其在青少年中非常流行,目前游戏开发商对其不断改进,已从简单的单机手游扩充为大型的网络对战游戏,但其基于面向对象程序设计思想仍未变。

本设计是为检验面向对象程序设计课程的知识运用而进行的实践,其主要目的是采用面向对象的思想,独立完成程序的各个过程,并在实践中应用学到的关于Java类与对象,接口,包,异常处理,多线程,事件处理及各类流的处理等知识。

1.系统分析1.1系统可行性分析在技术上,本系统的坦克大战是基于Java语言设计,并在Eclipse软件上具体实现的。

Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,具有简洁,安全,面向对象,动态,体系结构中立,可移植,高性能,多线程,解释执行,分布式等特性。

Java现在主要用在WEB开发,手机游戏及一些平台游戏的开发,因为其具有良好的跨平台性,在各类电子产品上应用非常广泛。

本系统使用Swing,GUI,Socket,面向对象设计等技术实现,这些技术已非常成熟,广泛应用于各类程序开发,故现在使用这些技术是可行的。

在实用性上,坦克大战为一款经典射击游戏,其前身为1985年日本游戏公司在任天堂FC(FamilyComputer)平台上开发的红白单机游戏,游戏以坦克战斗及保卫基地为主题,凭借流畅的游戏体验,不错的游戏视觉效果风靡全世界。

直到今天,仍有游戏商家以其为模型开发出3D网络对战版坦克大战,可见其具有广大的市场效益。

本系统运用Java跨平台编程语言,在PC上重新实现这一经典游戏,探究其设计思路与实现方法,并且设计了关卡模式,新增了游戏存盘,读档功能,使游戏玩法更加丰富。

java关于坦克大战的课程设计报告

java关于坦克大战的课程设计报告
本课程设计主要目的有:
掌握Java编程、面向对象的基础知识,编写坦克大战游戏。
较熟练地编写Java应用程序Application。
做好充分的准备之后,按照面向对象的设计思想,根据坦克大战游戏的实际需求设计相关的类与接口,实现多态、重载等开发工作。
指导教师签字:、日期:
指导教师评语
成绩:指导教师签字:日期:
课程设计所需软件、硬件等
硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。
课程设计进度计划
起至日期
工作内容
备注
2012.11
2012.12
程序设计构思,查阅Leabharlann 料程序设计实现,课程任务书
参考文献、资料索引
序号
文献、资料名称
信息科学与工程学院
课程设计任务书
题目:
学号:
姓名:
专业:
课程:
指导教师:职称:
完成时间:20年月----20年月
课程设计任务书及成绩评定
课程设计的任务和具体要求
本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA语言程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
编著者
出版单位
(1)Java语言实用教程(第2版) 丁振凡 北京邮电大学出版社.
(2)Java语言实用教程实验指导(第2版)丁振凡北京邮电出版社

java课设报告坦克大战

java课设报告坦克大战

java课设报告坦克大战什么是Java课设报告坦克大战?Java课设报告坦克大战是一个基于Java编程语言开发的游戏项目。

它模拟了坦克战争的场景,玩家需要操控一辆坦克,与其他玩家或者电脑控制的敌人进行战斗,完成各种任务。

这个项目旨在提高学生的Java编程能力和团队协作能力。

第一步:需求分析和设计在开始编写代码之前,我们需要进行需求分析和设计。

首先,确定游戏的功能和玩法。

例如,游戏应该具有地图、坦克、子弹等基本元素,玩家可以使用键盘控制坦克的移动和攻击,坦克和子弹应该有相应的属性和行为,坦克应该能够与其他坦克进行交互等等。

其次,我们需要设计游戏的界面和用户交互方式,包括游戏的开始菜单、游戏画面、得分、生命值等界面元素。

最后,我们应该考虑游戏的可扩展性,使得我们能够在后续的开发过程中添加更多的功能和元素。

第二步:编写代码在设计完成后,我们开始编写Java代码。

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

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

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

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

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

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

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

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

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

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

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

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

JAVA关于坦克大战的课程设计报告

JAVA关于坦克大战的课程设计报告
枣庄学院 信息科学与工程学院
课程设计任务书
题目:
学 号: 姓 名: 专 业: 课 程: 指导教师:
职称:
完成时间: 20 年 月----20 年 月
枣庄学院信息科学与工程学院制
课程设计任务书及成绩评定
课程设计的任务和具体要求 本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA 语言程
序设计》课程后,进行的一次全面的综合训练,JAVA 程序设计的设计目的是 加深对理论教学内容的理解和掌握,使学生综合运用所学知识,利用软件工程 为基础进行软件开发、并在实践应用方面打下一定基础。
2
二.系统分析 2.1 可行性分析
2.1.1 技术可行性 软件使用 swing、GUI、Socket、面向对象设计等技术实现,这些技术
均已是非常成熟的技术,之前已有相当多使用这些技术的成功案例,故现 使用这些技术是可行的。 2.1.2 经济可行性
本软件为免费软件,将免费提供软件的下载、运行和维护服务,软件 暂无收入,待公布之后随着使用者越来越多,将添加相应的广告、服务, 从而增加收入,若使用者寥寥无几,将再次分析是否重新策划软件或者放 弃开发,以减少损失。
2.2 需求分析
设计一个图形用户界面,将所有游戏的元素都能在此用于界面上表现出来, 界面能够接受用户的操作,具有人机交互功能。用户可以选择重新开始游戏, 退出游戏,暂停游戏游戏帮助。
界面中包含我方坦克,和敌人坦克以及坦克发出的子弹和爆炸后的效果。 坦克:坦克分为两种,敌方坦克和用户控制的坦克。用户方和敌方坦克均 可以发射子弹,可以改变路径的行走,且在行走过程中遇到墙等阻碍物和游戏 边界时要改变方向,而不能一直顶着障碍物不放。坦克之间不能穿越,碰撞到 后自动调换方向。 墙:游戏中的边界王家的坦克和敌人的坦克都不能越过,坦克的子弹也不 能穿过。 子弹:子弹可以由敌方和用户方发射,且发射出去的子弹可以直线移动, 直到碰到障碍物就消失,子弹可以穿越树林和河流。敌方坦克受到一颗子弹攻 击会爆炸从而导致死亡,死亡后坦克消失。用户方受到子弹攻击后会减少寿命, 且受到四次攻击则死亡,此时如还有敌方坦克存在,则用户方输掉本次游戏。 爆炸:当子弹射击到坦克身上时,要产生爆炸效果。 方向:坦克和子弹都有方向,可以选择上下左右四个方向,且子弹的方向 从属于坦克的方向。

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实现坦克大战课程设计报告书

Java实现坦克大战小游戏摘要Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。

我的课程设计是用java来做一个简单的坦克大战小游戏。

我将这个程序细分了多个部分,每个部分都建了独立的类,比如:坦克的模型类,河道,树和坦克方向等等。

之所以将之细分,是遵循了java的万事万物皆对象的原理。

在实现每个类时,最简单但也是最繁琐就是建立界面与实例化坦克,因为这牵扯了界面布局,监听的建立等;而有一些类,比如;河道、墙、坦克,这些类这可以依样画葫芦的编写。

在编写过程,借鉴了他人的一些图片模型,实现的功能也并不是和经典的FC坦克大战相同,但是每个坦克之间的互动还是实现了的。

关键词:万事万物皆对象界面布局坦克之间的互动USE JAVA TO REALIZE BATTLE CITY MINI-GAMEABSTRACTJava is a object oriented program design language what can compose cross platform application software. My curriculum design is using JAVA language to make a simple small game called Tank Battle. I break down this program into multiple parts, each part is to establish an independent class, such as: Tank Model class, River Course class, Tree class, The Direction of Tank class and so on. The reason divides into multiple parts, is because follow the principle of JAVA that everything is an object. When implements every class, the most simple but also the most troublesome is build interface and instantiate Tank class, because it is involved of the interface layout, monitoring the establishment. While there are some classes, such as: River Course class, Wall class and Tank class, can write like stick closely to the pattern given.In the preparation process, I refer some pictures of models of others, the function of the retaliate isn’t like FC Tank Battle, but the interaction between ach tank is realized.Key words: everything is an object, the interface layout, the interaction betweeneach tank目录1 课程目的与要求 (1)1、1课程目标 (1)1、2 课程的实现环境 (1)2 概要设计 (2)3 详细设计 (3)4 测试结果与心得体会………………………………………………………………………5 参考文献……………………………………………………………………………………附录……………………………………………………………………………………………源程序代码……………………………………………………………………………………1 课程的目的与要求1、1课程目标JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

基于J2ME的Java游戏坦克大战的开发毕业设计

基于J2ME的Java游戏坦克大战的开发毕业设计

(此文档为word格式,下载后您可任意编辑修改!)西南交通大学Java游戏编程技术课程设计报告坦克大战游戏编程课程设计报告年级: 2008级姓名: 陈锦添专业: 信息管理与信息系统二零一零年六月摘要Java良好的跨平台特性在移动平台的开发中显示出了巨大的威力。

Java语言面向对象的优势也使得开发游戏变得非常容易。

随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。

本论文着眼于J2ME技术的应用,开发一款可商用的手机游戏程序——坦克大战。

本程序的界面和运作方式继承于日本任天堂公司在20世纪80年代开发的Battle City游戏,将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。

本论文介绍了任天堂红白机的软硬件特性、J2ME的相关技术及本程序的结构分析和具体功能的实现。

[关键字]:J2ME,手机游戏,Java,坦克大战手机中将Java语言引入,作为一种通用的开发标准,并将向市场推广普及仅仅短短几年,J2ME仍是一种新型的技术,中文资料除台湾出版过相关书籍外,国内相关介绍资源很有限,国内J2ME开发商也屈指可数,名声较响的Digital-Red 公司也仅成立于1999年。

本文可算是对新技术的一些尝试,代表对无线平台应用程序推广的一些努力。

目录摘要 ................................................................................................................... - I - Abstract .................................................................................................................... - I - 第一章程序结构、思想和相关技术 .................................................................... - 3 -1.1 本程序需解决的有关技术问题.............................................................. - 3 -1.2 程序流程.................................................................................................. - 4 -1.3 绘图与MIDP2.0新增的GameCanvas包.................................................. - 5 -1.3.1 提供低级绘制的Canvas类.......................................................................... - 5 -1.3.2 Graphics类..................................................................................................... - 5 -1.3.3 PNG格式........................................................................................................... - 5 -1.3.4 Game包中的新功能....................................................................................... - 5 - 第二章游戏的设计思路 ...................................................................................... - 7 -2.1 坦克的控制和敌方的智能运行.............................................................. - 7 -2.2 子弹的运行和控制.................................................................................... - 8 -2.3 RMS数据库系统......................................................................................... - 8 -2.4 内存使用的最佳化.................................................................................. - 10 -2.5 混淆器(Obfuscator)的使用................................................................ - 10 -第三章程序分析和具体实现 .............................................................................. - 10 -3.1 游戏进入前的选择................................................................................ - 10 -3.2 主游戏逻辑及其涉及到的若干类...................................................... - 11 -3.3 坦克的共同行为.................................................................................... - 13 -3.4 玩家坦克的功能属性............................................................................ - 13 -3.5 敌人坦克的功能属性............................................................................ - 14 -3.6 子弹的运行和控制................................................................................ - 15 -3.7 记分系统................................................................................................ - 16 -3.8 本章小结:.............................................................................................. - 17 -第四章总结 .............................................................................................. - 18 -4.1 本程序的总结和展望.............................................................................. - 18 -4.2 经验和感想............................................................................................ - 18 -参考文献 ................................................................................................................ - 19 -第一章程序结构、思想和相关技术1.1 本程序需解决的有关技术问题1. 游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。

java坦克大战课程设计报告

java坦克大战课程设计报告

网络编程程序设计坦克大战网络版专业班级:09级网络工程(2)班组长:张玉利(200903060011)成员:李瑞琳(200903060016)张杰(200903060036)朱凯强(200903060020)杨达允(200902010026)指导教师:王占中一、需求分析每个人都玩过坦克大战这个游戏,本程序完成的功能就是平时所玩的游戏中所实现的一些基本功能。

并且在单机版的基础上改写成网络版具体游戏要求:●玩家控制的坦克能够四处移动●玩家控制的坦克能够打击敌人●敌人坦克能够任意移动●坦克被摧毁能够模拟爆炸●多个玩家(即客户端)通过服务器端进行互动。

二、java文件对应的功能。

Tank.java主要是包括Tank的相关信息;以及基本方法,以及对应的按键处理public void keyPressed(KeyEvent e) 按键响应函数private void locateDirection() 确定当前的坦克的位置private Missile fire() tank发射子弹public boolean isLive() 检测坦克是否还活着public void setLive(boolean live) 设定坦克的生死状态Tankclient.Java主要是客户端登陆的功能,具体通过套节字实现。

class ConnDialog extends Dialog此类主要实现通过对话框的形式来连接登录服务器。

客户机自动实现修改udPport的功能。

TankDeadMsg.Java本文件主要是向所有客户机包括服务器发送死亡坦克的信息。

这里主要用到的是多态机制。

(Tankdeadmsg继承msg接口)public void parse(DataInputStream dis)主要功能:* 分析接收到的消息数据* 接收到的消息数据的输入流public void send(DatagramSocket ds, String IP, int udpPort)主要功能:发送死亡坦克的相关的消息*通过该socket发送数据*数据的目标IP*数据的目标端口TankMoveMsg.java本文件主要是向所有客户机包括服务器发送坦克移动的相关息。

Java课程设计——坦克大战

Java课程设计——坦克大战

Java课程设计——坦克⼤战坦克⼤战——坦克类⼀. 团队课程设计博客链接⼆.个⼈负责模块和任务说明模块:坦克类(玩家坦克类+电脑坦克类),代码整合三.代码的提交记录截图四.负责模块和任务详细说明玩家坦克继承VisibleImage类,电脑坦克类继承⾃玩家坦克类,UML如下:1.玩家坦克类构造⽅法:设置坐标位置(坦克出⽣的位置),坦克的图⽚,坦克的类型(玩家还是电脑),⾯板(可将坦克放置于当前⾯板中),代码截图如下:移动⽅向:(上下左右)左移思路:若当前⽅向不是左移,则将图⽚更改为左移图⽚,并且更新⽅向为左。

若经过碰撞检测发现不会产⽣碰撞,则改变坐标,并且要判断坐标是否在边界。

其他⽅向同理,代码截图如下:碰撞检测:(墙与电脑坦克)思路:获取当前坐标周围⼀定范围内的矩形边框,同时获取当前⾯板内的所有墙体对象,将其存放于数组中。

将获得的矩形范围与所有墙体互相匹配,若符合则说明会产⽣碰撞。

注意草地例外。

坦克碰撞检测同理,注意要将⾃⼰除外,并且要查看当前坦克是否存活,代码截图如下:获得⼦弹:根据上下左右的⽅向判断坦克头的位置,即⼦弹发射的⽅向的预设,以保证之后⼦弹朝预设⽅向移动(⼦弹的移动在⼦弹类⾥)攻击⽅法:获得⼦弹,将⼦弹添加⾄⾯板(因为⼦弹有四个⽅向),启动攻击冷却线程。

触碰边界⽅法:根据屏幕与主窗体之间的⼤⼩关系,进⽽判断坦克是否移动到边界。

冷却线程:使⽤sleep()⽅法,经过休眠之后,要注意改变线程的状态,将其改为可攻击。

其余setter,getter⽅法则不进⾏详细描述。

2.电脑坦克类构造⽅法:继承⾃⽗类玩家坦克类,设置好初始⽅向,攻击冷却时间移动⽅向:在⽗类的基础上,改变了⽗类的⼿动产⽣新⽅向,⽽是随机产⽣新⽅向,并且在该⽅向的移动时间是设置好的,检测是否达到边界同理:碰撞检测,攻击⽅法的思路都与玩家坦克类相似,不同之处在于,玩家坦克类的⽅向是⼈为改动的,⽽电脑坦克类的⽅向是随机产⽣的,故要重写⽗类的这两个⽅法。

java课程设计-坦克大战

java课程设计-坦克大战

攀枝花学院学生课程设计(论文)题目:基于JAVA的坦克大战学生姓名:学号:所在院(系):计算机学院专业:计算机科学与技术班级:指导教师:职称:2011年5 月26 日攀枝花学院教务JAVA课程设计之坦克大战课程设计任务书攀枝花学院本科学生课程设计任务书注:任务书由指导教师填JAVA课程设计之坦克大战成绩评定表课程设计(论文)指导教师成绩评定表JAVA课程设计之坦克大战摘要摘要系统拥有可视化的登录界面,配有游戏帮助文档,程序的编写涵盖J2SE基础知识,包括典型的封装、继承、多态的实现,同时结合了socket网络编程、GUI图形用户界面的相关知识。

项目集成了单机个人、网络对战两个版本。

单机版实现精彩的人机对战,电脑间隔性产生敌方坦克,玩家通过血块持续攻击。

游戏进行了后门设计,玩家可以轻松穿越墙体攻击敌方坦克。

网络版游戏中作为服务器的主机需提前启动坦克服务器,服务器主线程将接收的客户端的数据包转发到其他客户端,实现客户端游戏界面的实时更新。

开始游戏后,主线程调用窗体对象的Paint方法进行绘图,画面采用双缓冲技术进行刷新。

坦克将在游戏开始时进行初始化,并随屏幕刷新的频率而移动。

关键字坦克大战,C/S网络体系,JAVA,Socket编程,GUI目录摘要 (Ⅰ)1 可行性研究 (1)1.1 可行性分析 (1)1.1.1 系统可行性 (1)1.1.2 技术可行性 (1)1.1.3 经济可行性 (1)1.1.4 操作可行性 (2)1.2 网络游戏的发展 (2)1.3 系统的现实意义 (2)1.4 系统特点 (2)1.5 Java、C语言、C++主流技术比较 (3)1.6 本章小结 (3)2 系统需求分析 (4)2.1 系统运行环境 (4)2.1.1 系统运行的软件环境 (4)2.1.2 系统运行的硬件环境 (4)2.2 相关理论 (4)2.2.1 关于Eclipse的介绍 (4)2.2.2 J2SE框架 (5)2.3 系统功能需求 (6)2.3.1 主界面人性化功能 (6)2.3.2 人机对战模式功能 (6)2.3.3 网络对战模式功能 (6)2.3.4 联机通信机制 (6)2.3.5 Java图形编程 (7)2.4 本章小结 (8)3 系统概要设计 (9)3.1系统功能设计 (9)3.1.1 坦克大战总体功能设计 (9)3.1.2 TankClient类基本功能分析 (10)3.1.3 Tank类基本功能分析 (11)3.1.4 Missile类基本功能分析 (12)3.1.5 Explode类基本功能分析 (12)3.1.6 服务器类基本功能分析 (13)3.1.7 信息传送类基本功能分析 (13)3.2 本章小结 (13)4 系统详细设计 (14)4.1 游戏主窗体实现 (14)4.2 单机游戏的实现 (15)4.3 联机功能实现 (18)4.4 网络模式主要代码 (22)4.5 本章小结 (25)5 结论 (26)5.1 课程设计总结 (26)5.2 本程序需解决的有关技术问题 (26)5.3 展望 (27)参考文献 (28)1 可行性研究1.1可行性分析1.1.1系统可行性人类进入21世纪,全球一体化,互联网就起到重要的作用,而且随着互联网的不断发展,信息技术逐渐发展壮大,将成为网络经济的核心。

java坦克大战课程设计报告

java坦克大战课程设计报告

《Java语言程序设计》课程设计报告题目:坦克大战专业:软件工程学号:姓名:指导教师:成绩:2011年 12 月18日目录一、系统分析 (3)可行性分析 (3)需求分析 (3)二、概要设计 (4)项目规划.................................................................................................... 错误!未定义书签。

工作流程图................................................................................................ 错误!未定义书签。

开发及运行环境 (5)三、详细设计与算法实现 (5)游戏主窗口 (5)游戏数据的输出 (5)封装的游戏元素 (8)四、测试.......................................................................................................... 错误!未定义书签。

测试环境 (9)测试结果 (9)五、软件截图 (10)六、总结.......................................................................................................... 错误!未定义书签。

七、参考文献 (11)一、系统分析可行性分析1.技术可行性软件使用swing、GUI、Socket、面向对象设计等技术实现,这些技术均已是非常成熟的技术,之前已有相当多使用这些技术的成功案例,故现使用这些技术是可行的。

2.经济可行性本软件为免费软件,将免费提供软件的下载、运行和维护服务,软件暂无收入,待公布之后随着使用者越来越多,将添加相应的广告、服务,从而增加收入,若使用者寥寥无几,将再次分析是否重新策划软件或者放弃开发,以减少损失。

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

基于java坦克大战课程设计报告摘要随着计算机的普及以及对电子游戏的认识,电子游戏已被越来越多的人选作放松、娱乐的休闲方式;电子游戏既不需要专门购买游戏器材,也不需要宽阔的游戏场地,只需要一台能独立完成任务的计算机即可,它可以是人们工作、学习时用的计算机,并不需要另行配置,这比起传统休闲游戏即省钱又省事。

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

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

关键字:局域网;电子游戏;坦克大战;目录一、系统分析............................................................................................................................ - 1 -可行性分析.......................................................................................................................... - 1 - 需求分析.............................................................................................................................. - 1 - 二、概要设计............................................................................................................................ - 2 -工作流程图.......................................................................................................................... - 2 - 项目规划.............................................................................................................................. - 3 - 开发及运行环境.................................................................................................................. - 3 - 三、详细设计与算法实现........................................................................................................ - 4 -游戏主窗口.......................................................................................................................... - 4 - 网络管理.............................................................................................................................. - 6 - 封装的游戏元素.................................................................................................................. - 8 - 四、测试.................................................................................................................................. - 10 -测试环境............................................................................................................................ - 10 - 测试结果............................................................................................................................ - 10 -五、软件截图.......................................................................................................................... - 11 -六、总结.................................................................................................................................. - 14 -七、参考文献.......................................................................................................................... - 15 -一、系统分析可行性分析技术可行性软件使用swing、GUI、Socket、面向对象设计等技术实现,这些技术均已是非常成熟的技术,之前已有相当多使用这些技术的成功案例,故现使用这些技术是可行的。

经济可行性本软件为免费软件,将免费提供软件的下载、运行和维护服务,软件暂无收入,待公布之后随着使用者越来越多,将添加相应的广告、服务,从而增加收入,若使用者寥寥无几,将再次分析是否重新策划软件或者放弃开发,以减少损失。

需求分析通过反复研究以及市场调查,得知游戏须具有以下功能:❑需要有图形游戏界面,让用户能看到游戏给出的反馈❑有人机交互功能,使用户能操作指定的游戏元素❑不同队伍的坦克,须显示不同外观,已分辨敌我❑坦克能够开火,攻击敌方,但不能攻击队友❑需要有不可被子弹穿透的墙,且墙有可摧毁和不可摧毁两种❑坦克有生命值,并非被击中一次就会爆炸❑坦克爆炸后将产生道具,拾到道具的坦克可加满生命值❑游戏须提供网络支持,即局域网联网对战❑玩家在游戏中可以发言,即群聊功能❑须在玩家之间设立房主,掌管游戏何时开始❑游戏结束时须判断哪一队胜利❑游戏结束后可重新开始❑游戏的操作、进度等须提供相应说明,以告知玩家二、概要设计工作流程图程序开始连接服务器 连接成YN新线程刷屏(间接调用paint)延迟25ms 初始化游戏元素根据游戏元素的属性,对其经行操作和绘出其图形Paint 方法战斗结束?Y键盘监听器 判断按下的是那个键 改变相应游戏元素的属性项目规划本游戏是一个典型的局域网对战游戏,应具有如下结构:❑游戏主窗口游戏的一切效果、进度、消息等都将由游戏主窗口展示❑网络管理负责发送、接收网络数据,以及如何处理这些数据❑封装的游戏元素游戏元素包括:坦克、子弹、爆炸效果、墙、道具等游戏必须的元素开发及运行环境开发时硬件环境❑CPU:Inter P7350❑显卡:NVIDIA GeForce 9600M GS❑内存:威刚2G/DDR2-667❑显示器:三星液晶15.4寸/分辨率:1280X800开发时软件环境❑操作系统:Windows7❑JDK:1.5.0❑IDE:Eclipse3.4.0运行时硬件环境❑CPU:Inter E5200❑显卡:NVIDIA GeForce 7300 GS❑内存:金士顿2G/DDR2-667运行时软件环境❑操作系统:Windows Xp❑JRE:1.6.0❑显示器:三星液晶19寸/分辨率:1440X900三、详细设计与算法实现游戏主窗口游戏主窗口是人机交互的窗口,对玩家而言,他们只和游戏主窗口打交道,并不关心游戏内部是如何实现的,所以游戏主窗口部分最重要的便是游戏数据的输入、输出。

在程序中须创建一个类TankClient,继承自Frame来创建一个窗口。

游戏数据的输入游戏中坦克需要能往上、下、左、右四个方向运动,故须设立4个按键,使其能操作坦克,另须设一个键控制坦克开火。

为方便操作,本游戏设置WSAD分别表示上下左右,小键盘数字键4,表示开火。

具体实现为,为窗口添加KeyListener(键盘监听器),监听键盘的按下和抬起。

在TankClient类中添加内部的适配器类,由于不需要其它类访问,将其设计为private的,以保证面向对象设计的封装性。

代码如下:/** 移动按键键盘监听器*/private class MoveKeyL extends KeyAdapter {public void keyPressed(KeyEvent e) {switch (e.getKeyCode()) {case KeyEvent.VK_A:myTank.keyDownToDir(Direction.L);break;case KeyEvent.VK_W:myTank.keyDownToDir(Direction.U);break;case KeyEvent.VK_D:myTank.keyDownToDir(Direction.R);break;case KeyEvent.VK_S:myTank.keyDownToDir(Direction.D);break;}}public void keyReleased(KeyEvent e) {switch (e.getKeyCode()) {case KeyEvent.VK_A:myTank.keyUpToDir(Direction.L);break;case KeyEvent.VK_W:myTank.keyUpToDir(Direction.U);break;case KeyEvent.VK_D:myTank.keyUpToDir(Direction.R);break;case KeyEvent.VK_S:myTank.keyUpToDir(Direction.D);break;}}}/** 开火按键键盘监听器*/private class FireKeyL extends KeyAdapter {public void keyReleased(KeyEvent e) {switch (e.getKeyCode()) {case KeyEvent.VK_NUMPAD4:myTank.fire();new TankFireMsg().send();break;}}}游戏数据的输出玩家需要从游戏输出数据中获得游戏信息,如坦克在往上行驶、坦克发了颗子弹、坦克爆炸等,这些均需要通过游戏数据的输出来告知玩家。

相关文档
最新文档