`
Jonathan樊
  • 浏览: 77131 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

单机版坦克大战游戏总结

阅读更多

           刚刚做完坦克大战的游戏,不能说做完,功能还很简单,还有一些Bug。花了两个下午,一个晚上,因为时间很紧张,(主要怪自己,在别人工作的时候,我在去杭州了,不过,玩得很开心,虽然来了"梅超风"),这里只是简单的一些总结,整理一下自己的思路,Bug,以后会慢慢修复。

 

       写一个游戏,首先要定义的自己的规则,搞清楚自己到底要实现的东西有哪些。然后,一点一点理清自己的思路。搞清楚,为了达到目的,我要做哪些事情,先后顺序是什么。

 

       一开始突然要写坦克,作者也是一头蒙。后来,静下心来,慢慢分析,先学会玩坦克大战这个游戏,搞清楚了游戏规则,然后开始模仿。要写这个游戏,首先,要有一个JFrame。要有自己的坦克和敌方坦克。坦克要会发射子弹。坦克要能够在JFrame上运动。要判断输赢,那么还要自己定义输赢标准。 这些是主干,其他的可以一点一点的加。

 

 

  一:界面,800*700的JFrame。

 

 


 

 

 

 

 

        背景图片是我截取的一个游戏的,然后一小块,一小块拼起来的,足足拼了400多块(因为这个背景图片很有战场的感觉)。

         然后,就是设计地图了。创建一个Map文件,用数字来表示地图上的事物。然后,读取文件,用到了前几天的文件的读取,将字符串转换成数组元素,用数组来存储。遍历数组,数组不同的元素,则绘制相对应的事物。

 

    //根据数组,画出地图

   public void createMap(int[][] array,Graphics g){
	   for(int i=0;i<array.length;i++){
		   for(int j=0;j<array[i].length;j++){
			   if(array[i][j]==1){
				   g.drawImage(Config.Wall.getImage(),35*(j),35*(i),null);
				   }
			   if(array[i][j]==2){
				   g.drawImage(Config.Stone.getImage(),35*(j),35*(i),null);
			   }
			   if(array[i][j]==3){
				   g.drawImage(Config.CantDie.getImage(),35*(j),35*(i),null);
			   }

		   }
	   }
   }

 

        JFrame双缓冲:借鉴了chang0501的blog,在这里附上地址:http://chang0501.iteye.com/blog/1027663

在这里就不多说了。真是牛人多多,要多多学习。

 

         二:己方坦克

 

         实现的功能:四个方向移动,发射子弹,判断障碍物,当被敌方坦克打中后,自动生成一个新的。游戏结束的标准是:敌方坦克被全部消灭或者己方坦克的基地被毁灭。己方坦克的作用就是保护基地不被毁,可以不断再生,直到游戏结束。

 

         用键盘来控制坦克的方向,需要添加键盘监听器:addKeyListener,用四个boolean变量来记录键盘的按键情况,按下键,相对应的值变为true,那么此时前进的方向就确定了,释放为false。

 

 

         /**

	 * 判断前进方向
	 */
	public void directionToHead() {
		if (dir == e.VK_RIGHT) {
			right = true;
			currentDirection = "right";
		}
		if (dir == e.VK_LEFT) {
			left = true;
			currentDirection = "left";
		}
		if (dir == e.VK_UP) {
			up = true;
			currentDirection = "up";
		}
		if (dir == e.VK_DOWN) {
			down = true;
			currentDirection = "down";
		}
	}

 

    三:敌方坦克

 

    其实,敌方坦克类里有许多和己方坦克相同的方法,比如,判断是否被打中,是否碰到障碍物。敌方坦克不同的是,被打中后,消失,直到全部被打中消失,那么,游戏结束,己方胜利。敌方坦克的运动方向和位置是随机的。前,后,左,右,四个方向随机选择。

   /**

	 * 随机选择前前进的方向
	 */
	public void initDirection() {
		Random ran = new Random();
		int dir = ran.nextInt(4);
		if (dir == 0) {
			up = true;
		}
		if (dir == 1) {
			down = true;
		}
		if (dir == 2) {
			left = true;
		}
		if (dir == 3) {
			right = true;
		}
	}

 

 

    四:子弹类

      己方子弹,和敌方子弹,创建方法时相同的,里面实现的方法也有很多相同的地方,其实可以合并写在一个类里。但,一开始的时候,我为了理清自己的思路,把他们一一的分开了。

     子弹的运动方向和位置的定义,是与坦克运动方向,位置相关的,因此可以用坦克的坐标来表示子弹的坐标,坦克的方向就是子弹的方向。子弹类里,会有一些方法,比如,子弹击中了墙,那么墙就要消失;子弹击中对方坦克,坦克消失,等等。

 

 

   五:实现爆炸效果

   爆炸的实现其实就是连续的绘制图片。将图片保存在数组里,然后遍历绘制。爆炸的产生是在子弹打中坦克的情况的产生的,因此,此时的子弹是setLive(false)的,调用爆炸方法即可。

 

  六:Config类

      因为要绘制很多图片,为了方便,可以将要用到的素材放到Config类里。

 

 

      以上只是我暂时的结果。还有很多要完善的地方,比如,敌方坦克不可以重合,由于敌方坦克运动方向是随机的,坦克可能会原地打转的问题,等等,很多。我会继续完善的。

 

  • 大小: 257.7 KB
2
3
分享到:
评论
2 楼 Jonathan樊 2011-08-11  
jcs130 写道
图挂了……

我先把图放到QQ相册里,得到网络地址,才能上传啊~~不然,怎么办呢?
1 楼 jcs130 2011-08-11  
图挂了……

相关推荐

    java写的单机版坦克大战@version2.6

    《Java编写的单机版坦克大战游戏详解》 在编程世界中,游戏开发是一项充满挑战与乐趣的任务,尤其是在Java平台上。本文将详细解析一个名为"java写的单机版坦克大战@version2.6"的游戏项目,它是一款基于Java语言...

    java语言的单机版坦克大战源代码

    在计算机编程领域,尤其是游戏开发中,使用Java语言实现的单机版坦克大战是一个经典的案例,它涉及到图形用户界面(GUI)、事件处理、对象和类的运用等多个核心知识点。本文将深入解析这段源代码,帮助读者理解其...

    用Java实现的坦克大战游戏

    《用Java实现的坦克大战游戏》是一款基于Java编程语言开发的单机版坦克大战游戏,其特点是使用纯代码构建,具备详细的注释,方便开发者理解并进行二次开发或学习。这个游戏不仅展示了Java在游戏开发中的应用,也提供...

    java坦克大战单机版

    总结起来,Java坦克大战单机版的学习涵盖了Java GUI编程、事件处理、多线程、对象设计、游戏逻辑及文件I/O等多个核心知识点。通过实际开发这个游戏,开发者不仅可以巩固Java基础知识,还能提升解决问题和设计复杂...

    java版坦克大战游戏.doc

    本文档旨在对 Java 版坦克大战游戏的开发技术要点进行总结,通过对游戏的开发背景、游戏的研究现状、开发环境和相关技术的介绍,来总结出 Java 版坦克大战游戏的开发技术要点。 开发背景 -------- 坦克大战是童年...

    【源码】html5游戏-坦克大战

    在这个坦克大战游戏中,Canvas用于渲染游戏场景,包括地形、坦克、子弹等元素,通过JavaScript的绘图函数如`fillRect()`、`strokeRect()`、`beginPath()`、`moveTo()`、`lineTo()`等进行动态绘制。 2. JavaScript...

    HTML5坦克大战网页版.zip

    在坦克大战游戏中,这些API被用来绘制游戏场景、坦克、子弹以及碰撞检测。 游戏的核心部分通常包括以下几个模块: 1. 游戏逻辑:这是游戏的“大脑”,处理玩家输入、坦克移动、射击、碰撞检测等事件。这部分通常用...

    java单机坦克大战图片版

    《Java单机坦克大战图片版》是一款基于Java J2SE技术开发的经典游戏,它将传统的坦克大战游戏与图像元素相结合,提供了丰富的视觉体验。通过这个项目,我们可以学习到许多Java编程的基础知识,以及如何利用Java进行...

    坦克大战(内含马士兵老师坦克大战教学0.1-2.9章节基础班加图片版视频及代码)+坦克大战单机+联机版+图片资源包+背景音乐+草地+砖块+基地等等

    “坦克大战”是一款经典的策略游戏,本项目旨在通过Java编程语言实现该游戏,不仅涵盖了单机模式还拓展了联机对战功能,旨在为玩家提供更加丰富的游戏体验。该项目由马士兵老师进行指导教学,覆盖了从0.1到2.9章节的...

    坦克大战html休闲娱乐版.rar

    下面将详细介绍这款HTML版坦克大战游戏所涉及的技术点。 1. HTML基础结构:HTML(超文本标记语言)是网页内容的基础,用于定义页面结构。在这个游戏中,HTML元素被用来创建游戏界面的基本布局,如游戏区域、菜单、...

    纯JAVA坦克大战,可以做毕业设计

    论文通过总结和分析JAVA游戏的开发流程和代码框架的设计,开发了一款基于J2SE架构的游戏——局域网坦克大战,该游戏主要分为场景类、子弹类、坦克类、敌方坦克类、我方坦克类等几个类,能够实现敌方坦克和子弹的智能...

    坦克大战(转载)

    在本文中,我们将深入探讨这款基于MFC框架实现的90坦克大战的移植版,它提供了单机版的游戏体验。MFC,全称Microsoft Foundation Classes,是微软为Windows应用程序开发提供的C++类库,它简化了窗口、对话框、控件等...

    毕业论文jsp2303(CS)坦克大战.docx

    8.坦克大战游戏设计:本设计主要实现的功能是让坦克能向八个方向移动,并且打出炮弹,子弹击中敌人坦克,子弹和敌人坦克同时消失,产生爆炸,CPU坦克能智能的移动并且打出炮弹。 Java 2 Standard Edition(J2SE)的...

    【2018最新】java游戏毕业设计-word范文 (12页).docx

    - **研究意义**:开发PC版《墨水坦克大战》游戏旨在满足不同用户群体的需求,特别是那些因手机屏幕小或配置低而难以充分体验游戏乐趣的玩家。此外,通过该项目的设计与开发,开发者可以将理论知识与实际操作相结合,...

    java TankWar

    TankWar单机版的设计灵感来源于经典的坦克大战游戏,玩家通过控制坦克在地图上移动,击败敌方坦克以赢得胜利。游戏的核心在于策略和反应速度,同时,它也展现了Java编程语言在实时交互和图形渲染方面的应用能力。 ...

Global site tag (gtag.js) - Google Analytics