基于JAVA的简易坦克大战(八)

原创 2013年12月05日 09:49:40

4.2.5 爆炸效果类算法

1、爆炸效果类通过在子弹有效打击的时候,在子弹和击杀坦克接触的坐标上按规定的爆炸步数,画出不同半径的圆来模拟爆炸效果的。

2、爆炸效果类的设计源码:

import java.awt.*;
public class Explosion {
	private int x;
	private int y;
	private TankClient tc = null;
	private int step = 6;
	private int size[][] = {{10,10},{20,20},{30,30},{35,35},{20,20},{5,5}};
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}
	public Explosion(int x, int y, TankClient tc) {
		super();
		this.x = x;
		this.y = y;
		this.tc = tc;
	}
	public void drawExplosion(Graphics g){
	Color c = g.getColor();
	g.setColor(Color.YELLOW);
	for(int i = 0;i < step;i++ )
	{
		g.fillOval(x + 10, y + 10, size[i][0], size[i][1]);
	}
	g.setColor(c);
	}
}

4.2.6 墙体类算法

1、墙体类实现了游戏中墙体的draw方法:通过调用JAVA内部封装的画图方法实现了简易墙体的绘制。

2、子弹与墙体的碰撞检测以及敌我双方坦克与墙体的额碰撞检测是在坦克大战管理类中实现的。碰撞检测是通过判断对象实例的双方所占的额范围是否重合来实现的。挡子弹与墙体(非水墙)碰撞时,子弹live = false,并将该子弹从坦克大战管理类的子弹集合中删除(线程重画将不会再次画出该子弹)。当坦克和墙体发生碰撞时,坦克的坐标会自动返回坦克上一次的坐标(oldx,oldy),这样就可以解决坦克穿墙的问题了。

墙体类设计源码:
import java.awt.*;
public class Wall {

	private int x;
	private int y;
	private int width;
	private int height;
	private int number;//墙体类型编号
	private TankClient tc = null;
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

	public int getNumber() {
		return number;
	}

	public Wall(int x, int y, int width, int height, int number, TankClient tc) {
		this.x = x;
		this.y = y;
		this.width = width;
		this.height = height;
		this.number = number;
		this.tc = tc;
	}
    public void drawWall(Graphics g){
    	Color c = g.getColor();	
    	//土墙
    	if(number == 0)
    	{
    		g.setColor(Color.GRAY);
    		g.fillRect(x, y, width, height);
    	}
    	//海
    	if(number == 1)
    	{
    		g.setColor(Color.BLUE);
    		g.fillRect(x, y, width, height);
    	}
    	g.setColor(c);
    }
    public Rectangle getRect(){
    	return new Rectangle(x,y,width,height);
    }
}


基于JAVA的简易坦克大战(四)

第三章 算法概要设计   3.1 软件结构 1.坦克大战游戏概念详见:2.3缩写及缩略语。 2.本坦克大战游戏按类(详见2.3)可以分为六大模块: (1)坦克大战管理类(Tankclient)。 (2...

基于JAVA的简易坦克大战(三)

第一章 运行环境(软、硬件环境)   1.1 坦克大战游戏的运行软件环境   本坦克大战游戏是基于JAVA语言程序设计,利用Eclipse 3.7.0在Windows操作系统环境下开发测试实现...

基于JAVA的简易坦克大战(五)

第四章 算法详细设计   4.1 程序描述 本坦克大战游戏通过监听用户的键盘输入对我方坦克即游戏的相关模式进行相应的操作。 用户只要给出坦克方向,坦克便会根据方向相应的改变坦克的坐标,再通过坦...

基于JAVA的简易坦克大战(六)

4.2.2 坦克类算法 1、坦克类是坦克大战的重要模块,这里包含了坦克应该有的成员属性(详见逻辑结构设计)。坦克大战管理类的按键监听使用的就是在坦克类中实现的keyPressed方法和KeyRele...

基于JAVA的简易坦克大战(七)

4.2.3 炮弹类算法 1、炮弹类实现了炮弹的draw方法和子弹的move方法。 2、Draw方法是通过调用JAVA封装的内部方法来实现的。Move方法是根据坦克炮筒的方向和子弹的速度来改变子弹的...

坦克大战-java简易版

  • 2013年04月22日 17:32
  • 21KB
  • 下载

简易的java版坦克大战游戏

  • 2014年03月14日 21:52
  • 459KB
  • 下载

Java之详解坦克大战游戏(四)

目前我们的坦克能发子弹,但是只能发一颗,而且打到敌人坦克敌人还不会消失,本篇我们就来解决这个问题…子弹要想做到连发,就得初始化多个子弹,这个时候我们仍然还是跟定义敌人的坦克组一样用Vector集合.....

简易坦克大战单机版

  • 2013年01月07日 09:54
  • 394B
  • 下载

JAVA实现经典坦克大战及源代码下载

一、简单介绍         这是一个功能相对全的JAVA版坦克大战,界面绘制是通过JAVA的图形化用户界面完成的,包括了菜单界面和游戏界面。其中菜单界面可以供玩家选择重新开始游戏、暂停、继续、是否播...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于JAVA的简易坦克大战(八)
举报原因:
原因补充:

(最多只允许输入30个字)