当前位置:文档之家› 苏利民论文

苏利民论文

坦克大战

班级:41361 学号:201304061039 姓名:苏利民

摘要

本论文第一章是介绍国内外游戏发展状况,第二章介绍一些游戏编程技术的原理,第三章是坦克大战的总体设计,对游戏有一个总体设计,第四章介绍了自己的设计,游戏具体实现都在这张,第五章介绍了游戏的设计创新与不足之处,最后总结。

坦克大战用JAVA实现起来不难,先准备各种图片,然后准备自己需要的代码,然后写成代码的类型,本游戏共分成11个大类,分别是BadTank.JAVA;Explode.JAVA;GoodTANK.JAVA;JDBCUtil.JAVA;Messa.JAVA

MyListen.JAVA;RedWall.JAVA;Shot.JAVA;Tank,JAVA;TANkWar.JAVA;Wall.JAVA;(敌方坦克;炮弹;我方坦克;数据库;对话框;监听器;红墙;子弹;坦克;总体设计;墙;)本游戏的设计思路是这样的:运行程序之后会显示进入游戏界面,点击开始游戏,界面显示红色为我方坦克,蓝色为敌方坦克,我方坦克发射炮弹躲避敌方坦克,击毙敌方五个坦克,则游戏结束否则游戏失败,游戏失败之后可以选择继续或者退出游戏,本游戏只有一关。游戏布局合理,图形图像显示无误。

关键词:坦克大战;游戏;塔克;监听器,对话框

目录

第一章游戏发展状况

1.1背景

1.2著名游戏公司简介

1.3国内游戏发展状况

1.3.1欧美游戏制作现状

1.3.2韩国游戏制作现状 1.4国内的发展状况

1.4.1萌芽期

1.4.2创业期

1.4.3发展期

第二章游戏设计原理及技术 2.1游戏类型

2.2本游戏的开发的目的 2.3游戏开发的各个阶段

2.3.1早期阶段

2.3.2生产阶段

2.3.3生产包装阶段

2.3.4测试阶段

2.3.5发布阶段

2.4游戏开发应该注意的问题 2.4.1深度VS宽度

2.4.2立即存盘

第三章坦克大战总体设计

3.1总体设计

3.1.1运行环境

3.1.2基本设计

3.1.3功能综述

3.2游戏的设计

3.2.1游戏设计流程图

3.2.2游戏界面

第四章自己的设计

4.1为什么设计这款游戏

4.2坦克的设计和炮弹

4.2.1我方坦克敌方坦克

4.2.2炮弹

4.3功能的实现

4.3.1坦克的控制

4.3.2坦克发射炮弹

第五章程序的设计创新与不足5.1程序的优点

5.2程序的缺点

第六章总结

致谢

石家庄铁路职业技术学院信息工程系坦克大战

第一章游戏发展状况

1.1背景

真正的电子游戏机生产于20世纪70年代。1972年麻省理工学院学生Nolan Bushnell 设计了世界上第一个业务用的游戏机,叫做(电脑空间)的主题是两个玩家各自控制一艘太空战舰围绕具有强大引力的星球向对方发射导弹进攻。两艘战舰在战斗的同时还必须注意克服引力,无论是呗对方的导弹击中还是没有成功摆脱引力。飞船都会坠毁。这台游戏机以黑白电视作为显示屏,用一个控制柄作为操作器,不过由于市场因素游戏宣告失败。

1976年10月,Atari发行了名为《夜晚驾驶者》的模拟业务游戏,这个游戏为黑白屏幕,自带了相关的操作器。在这个游戏里玩家需要扮演一个黑夜里驾驶在告诉上狂奔的疯狂的车手。这是历史上第一款3D游戏它用简单的透视效果,专业术语LOD来表现汽车的前进和道路景物的后退,这款游戏为3D游戏的始祖。除此之外还是历史上第一个主视角的游戏。

1.2著名游戏公司简介

雅达利:游戏制作,开发开山的鼻祖,现在只能在历史的档案里找到足迹,但是雅达利留下了许多开发技术,这些技术至今还在应用,甚至影响了计算机图形学中的某些分支。

任天堂:FC,超级玛丽,魂斗罗,最终幻想

世嘉:专注于家庭机市场北斗神拳,战俘,太空哈利都是世嘉的名作。

光荣:《三国志》《太阁立志传》《无双》《大航海时代》

暴雪《星际争霸》《暗黑破坏神》《魔兽争霸》

电子艺界《FIFA》《NBA》

CAPCOM《洛克人》《龙之战士》《吞食天地》《深化危机》

1.3国内游戏发展状况

想要客观的认识中国的游戏教育现状首先就要对世界上的游戏产品比较发达的地区进行一定了解。在这些地区存在的游戏模式与形式都是我们非常好的教科书。

1.3.1欧美游戏制作现状

欧美游戏制作人才的培训,现在大多采用学院制不过由于欧美的一些状况,他们的学院制与我们略有区别,正如美国的老师在进行教师专业培训之前必须完成大学学业一样,欧美的制作人才培训更注重基础和能力。

因此欧美的游戏制作人才相对来说有更高的起点和基础能力,也正是因为这个原因,因此欧美专业策划人相对较少,欧美策划人才基本是由程序员转型而成的,这也是欧美游戏极少有突破的原因。

1.3.2韩国游戏制作现状

韩国有为数众多的游戏制作爱好者,因为他们的产业非常年轻,因此,韩国的游戏制作业在早期没有很好的人才培训体系。

不过现在值得注意是这样一个人才培养体系已经形成,虽然规模和成熟不及欧美和日本由于韩国面积有限,加上对游戏制作几乎时倾力支持因此,韩国游戏开发是一个质的飞跃。

1.4国内的发展状况

1.4.1萌芽期

1989-1991年混沌初开,一些接触外来事物较早的北京大学生凑出了几个可以游戏起来的游戏,那时候国内还没有互联网传播渠道有限,因此没能引起注意。1993年以后国内有了宣传《电脑游戏》的主要媒体,1994年几个国内电脑游戏的先锋媒体相继创刊国产游戏迎来大发展时代,《赤壁》《八一战鹰》所有人都敏感的意识到:新一轮的商业机遇已经来临。

1.4.2创业期

金盘公司:依托于清华大学的一间多媒体制作公司

前导公司:这家公司主要致力于中国传统题材的游戏软件,智能型学习软件和基于学习机平台的教育软件,后期也曾代理销售海外优秀的游戏软件。

金山公司:《中关村启示录》《中国民航》《剑侠情缘》

尚洋公司:《血狮》《烈火文明》

1.4.3发展期

但不论怎么说,好也罢,坏也罢,在国产游戏刚刚起步阶段,我们已经看到一个众鸟高飞的惊人景象。随着审美观念的变化和审美趣味的提高他们对一部游戏的评价也越来越高。

纵观国内游戏创造的积累过程,可以说每一个开发商都在清醒头脑冷静的分析和开启潜在市场,分析着电脑游戏可能为我们送来文化信息,既分析着眼前的困难,也分析着前景

第二章游戏设计原理及技术

2.1游戏类型

运动类,格斗类,街机枪战,机械模拟类,生态模拟类,战争类,交互故事,怀旧经典类和棋牌类

2.2本游戏的开发的目的

本次游戏的开发目的:这款游戏通过eclipse2.0运行,始运行的程序达到自己想要的水平,完成一些具体的操作方式,检验各个类的实施以及数据库的来链接。

2.3游戏开发的各个阶段

2.3.1早期阶段:(概念,原型,可玩性阶段)架构的主要焦点集中在如何让程序先跑起来

2.3.2生产阶段:查看器和编辑器一类工具将很有用。

2.3.3生产包装阶段:我们必须把所有游戏模式和显示集成一个无缝产品。

2.3.4测试阶段:我们需要在不同模式或某些点进入游戏。

2.3.5发布阶段:当我们达到发布阶段以后,游戏开发小组会将进行开发。2.4游戏开发应该注意的问题

2.4.1深度VS宽度:你一次提供给玩家的选项越多,你就会冒更大的风险,因为他可能会吓走害怕复杂界面的玩家。深长地界面通过以恶分层的目录或者对话框串来提供他们所有的选择,用户可以快速的明白每一个目录提供的内容。同时提供一个宽阔的界面让玩家来使用。如果你只提供一种界面我希望你的界面广度和深度应该大致相等。

2.4.2立即存盘:如果允许在任何地方保存游戏,那么游戏开发的难度大大降低,这样将影响或是严重的损失一个游戏耐玩度。

第三章坦克大战总体设计

3.1总体设计

3.1.1运行环境

硬件:内存512M以上,硬盘30G 软件:Eclipse,JAVA,SQL,JDK

3.1.2基本设计

坦克大战游戏需要实现坦克的游戏过程,坦克的加速过程,发射炮弹的过程,操作过程。

3.1.3功能综述

运行程序,进入游戏之后会显示界面,红方为我方坦克,蓝方为敌方坦克,接下来可以控制我方坦克移动总共八个方向(北南西东,东北,东南,西北,西南)按Ctrl发射炮弹,子弹打到敌方坦克会爆炸,敌方坦克击中自己坦克也会爆炸,如果坦克碰到障碍物不能移动,子弹不能穿墙,击中敌方所有坦克时候显示游戏结束这时候你有两种选择,第一种继续游戏,第二种退出游戏

3.2游戏设计

3.2.1游戏设计流程图:Array系统总体流程图如图3-2所示

3.2.2游戏界面

图1:开始界面

图2:进入游戏图

图3:游戏结束图

第四章自己的设计

4.1为什么设计这款游戏:小时候很怀念这款最经典的游戏,所以这次毕业设计想设计这款游戏。

4.2坦克的设计和炮弹

4.2.1我方坦克敌方坦克

我方坦克(GoodTank.JAVA):

public class GoodTank extends Tank {//我方坦克类

private TankWar tw;

// 代表几盘上的四个方向键按下与否

private boolean bU = false, bD = false, bR = false, bL = false;

private Image[] imgs = { new ImageIcon("imgs/tankU.png").getImage(), new ImageIcon("imgs/tankD.png").getImage(),

new ImageIcon("imgs/tankL.png").getImage(),

new ImageIcon("imgs/tankR.png").getImage(),

new ImageIcon("imgs/tankLU.png").getImage(),

new ImageIcon("imgs/tankRU.png").getImage(),

new ImageIcon("imgs/tankLD.png").getImage(),

new ImageIcon("imgs/tankRD.png").getImage(),

};

敌方坦克(BadTank.JAVA)://敌方坦克

public class BadTank extends Tank {

private Random r = new Random();

private int step = r.nextInt(10) + 6;

private Image[] imgs = { new ImageIcon("imgs/tank1U.png").getImage(),

new ImageIcon("imgs/tank1D.png").getImage(),

new ImageIcon("imgs/tank1L.png").getImage(),

new ImageIcon("imgs/tank1R.png").getImage(),

new ImageIcon("imgs/tank1LU.png").getImage(),

new ImageIcon("imgs/tank1RU.png").getImage(),

new ImageIcon("imgs/tank1LD.png").getImage(),

new ImageIcon("imgs/tank1RD.png").getImage(),//敌方坦克的八个方向

};

public BadTank(int x, int y, TankWar tw) {

super(x, y, tw);//构造方法

}

4.2.2生成炮弹(Explode.JAVA):

public void drawExplode(Graphics g) {//生成炮弹

if (!eLive) {

tw.explodes.remove(this);

return;

}

if (step == 10) {

step = 0;

this.eLive = false;

return;

}

step++;

g.drawImage(image, x - 20, y - 20, null);

addVoice();// 调用声音文件

}

}

4.3功能的实现

4.3.1坦克的控制(Tank.JAVA)

public static final int TANKXSPEED = 10;// 坦克横向移动速度public static final int TANKYSPEED = 10;// 坦克纵向移动速度

public static final int TANKWIDTH = 60;// 坦克的宽度

public static final int TANKHIGHT = 60;// 坦克的高度

protected boolean isGood = true;

protected int x, y;// 坦克的坐标位置

protected boolean tLive = true;

// 定义Direction为一个枚举类型,该枚举有八个方向

protected enum Direction {

U, D, R, L, RU, RD, LU, LD, STOP

};

protected Direction dir = Direction.D;// 定义dir为Direction类型变量,初始值为D

protected Direction rDir = Direction.D;

protected TankWar tw;

// 构造方法,根据坦克位置构造一个坦克对象

public Tank(int x, int y) {

this.x = x;

this.y = y;

}

public Tank(int x, int y, TankWar tw) {

this(x, y);

this.tw = tw;

}

public boolean istLive() {

return tLive;

}

public void settLive(boolean tLive) {

this.tLive = tLive;

}

4.3.2坦克发射炮弹(Explode.JAVA)

import java.awt.Graphics;

import java.awt.Image;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import javax.swing.ImageIcon;

import sun.audio.AudioPlayer;

import sun.audio.AudioStream;

public class Explode {//发射的炮弹的类

private int x, y;

int step;

private TankWar tw;

private boolean eLive = true;

Image image = new ImageIcon("imgs/11.png").getImage();

public Explode(int x, int y, TankWar tw) {//构造方法this.x = x;

this.y = y;

this.tw = tw;

}

第五章程序的设计创新与不足

5.1程序的优点:本游戏的优点在于运用了我们所学的东西,将代码变为成品。

5.2程序的缺点:本程序只有一关!只能单机!

第六章总结

时光荏苒,岁月如梭,两个多月过去了,在这两个月中使我成长了不少,首先编程能力得到了很高的提升,其次让我了解我的不足,一直以来我觉得我学的东西挺多的但是通过这次毕业设计使我清晰的认识了自己学的东西只是沧海一粟,只是真的有太多,真的应了那句话,活到老学到老,这次设计是对大学所学的知识一种检验设计中发现自己不足,查资料,找老师,问同学,当然老师给了我莫大帮助。

过程是苦的,结果是甜的。一分耕耘一分收获,我的努力得到了报告,老师表扬了我,这给了我很大的鼓舞。

致谢

这次毕业设计,我最想感谢我的导师,是他们给了我很多建议和帮助,感谢刘佳老师帮我修改论文,非常谢谢你。

还有要感谢哪些帮助我的同学们和朋友们,滴水之恩当涌泉相抱,在你需要帮助的时候我会雪中送炭。

相关主题
文本预览
相关文档 最新文档