亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tank.java

?? 純java編寫的坦克大戰(zhàn)游戲.把項(xiàng)目引入eclipse后立即可運(yùn)行。在此基礎(chǔ)上可進(jìn)行二次開發(fā)哦。
?? JAVA
字號:
import static java.awt.event.KeyEvent.VK_CONTROL;
import static java.awt.event.KeyEvent.VK_DOWN;
import static java.awt.event.KeyEvent.VK_LEFT;
import static java.awt.event.KeyEvent.VK_RIGHT;
import static java.awt.event.KeyEvent.VK_UP;
import static java.awt.event.KeyEvent.VK_F2;
import static java.awt.event.KeyEvent.VK_A;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.util.List;
import java.util.Random;


public class Tank {
	int x, y;
	int oldX, oldY;
	Direction dir = Direction.STOP;
	Direction ptDir = Direction.D;
	private boolean bL, bU, bR, bD;
	boolean good;
	boolean live = true;
	private static Random r = new Random();
	private int step = r.nextInt(10);
	TankClient tc;
	int life = 100;
	BloodBar bb = new BloodBar(this);
	
	public static final int XSPEED = 5;
	public static final int YSPEED = 5;
	public static final int WIDTH = 30;
	public static final int HEIGHT = 30;
	
	public Tank(int x, int y, Direction dir, boolean good, TankClient tc) {
		this.x = x;
		this.y = y;
		this.dir = dir;
		this.good = good;
		this.tc = tc;
	}
	
	public void draw(Graphics g) {
		if(!live) {
			tc.tanks.remove(this);
			return;
		}
		
		move();
		
		collidesWithWall(tc.w1);
		collidesWithWall(tc.w2);
		
		collidesWithTanks(tc.tanks);
		
		Color c = g.getColor();
		if(good)
			g.setColor(Color.RED);
		else 
			g.setColor(Color.BLUE);
		g.fillOval(x, y, WIDTH, HEIGHT);
		g.setColor(c);
		
		if(good) {
			bb.draw(g);
		}
		
		drawPT(g);
	}

	private void drawPT(Graphics g) {
		
		int ox = this.x + WIDTH/2;
		int oy = this.y + HEIGHT/2;
		
		switch (ptDir) {
		case L:
			g.drawLine(ox, oy, x, y + HEIGHT/2);
			break;
		case LU:
			g.drawLine(ox, oy, x, y);
			break;
		case U:
			g.drawLine(ox, oy, x + WIDTH/2, y);
			break;
		case RU:
			g.drawLine(ox, oy, x + WIDTH, y);
			break;
		case R:
			g.drawLine(ox, oy, x + WIDTH, y + HEIGHT/2);
			break;
		case RD:
			g.drawLine(ox, oy, x + WIDTH, y + HEIGHT);
			break;
		case D:
			g.drawLine(ox, oy, x + WIDTH/2, y + HEIGHT);
			break;
		case LD:
			g.drawLine(ox, oy, x, y + HEIGHT);
			break;
		default:
			break;
		}
	}

	private void move() {
		oldX = x;
		oldY = y;
		
		switch (dir) {
		case L:
			x -= XSPEED;
			break;
		case LU:
			x -= XSPEED;
			y -= YSPEED;
			break;
		case U:
			y -= YSPEED;
			break;
		case RU:
			x += XSPEED;
			y -= YSPEED;
			break;
		case R:
			x += XSPEED;
			break;
		case RD:
			x += XSPEED;
			y += YSPEED;
			break;
		case D:
			y += YSPEED;
			break;
		case LD:
			x -= XSPEED;
			y += YSPEED;
			break;
		default:
			break;
		}
		
		if(this.dir != Direction.STOP) {
			this.ptDir = dir;
		}
		
		if(x < 0) x = 0;
		if(y < 30) y = 30;
		if(x + WIDTH > TankClient.GAME_WIDTH) x = TankClient.GAME_WIDTH - WIDTH;
		if(y + HEIGHT > TankClient.GAME_HEIGHT) y = TankClient.GAME_HEIGHT - HEIGHT;
		
		if(!good) {
			randomTankAction();
		}
	}

	private void randomTankAction() {	
		step --;
		
		if(step <= 0) {
			step = r.nextInt(10);
			Direction[] dirs = Direction.values();
			this.dir = dirs[r.nextInt(dirs.length)];
		}
		
		if(r.nextInt(40) > 36) {
			fire();
		}
	}

	public void keyPressed(KeyEvent e) {
		int key = e.getKeyCode();
		switch (key) {
		case VK_F2:
			if(!this.live) {
				this.relive();
			}
			break;
		case VK_LEFT:
			bL = true;
			break;
		case VK_UP:
			bU = true;
			break;
		case VK_RIGHT:
			bR = true;
			break;
		case VK_DOWN:
			bD = true;
			break;
		default:
			break;
		}
		
		locateDirection();
		
	}

	private void relive() {
		this.live = true;
		this.life = 100;
	}
	
	private void superFire() {
		Direction[] dirs = Direction.values();
		for (int i = 0; i < dirs.length; i++) {
			if(dirs[i] != Direction.STOP) {
				fire(dirs[i]);
			}
		}
	}
	
	private Missile fire(Direction dir) {
		if(!live) {
			return null;
		}
		
		int mx = x + (Tank.WIDTH - Missile.WIDTH) / 2;
		int my = y + (Tank.HEIGHT - Missile.HEIGHT) / 2;
		Missile m = new Missile(mx, my, dir, this.good, this.tc);
		tc.missiles.add(m);
		return m;
	}
	
	private Missile fire() {
		
		return fire(this.ptDir);
	}

	private void locateDirection() {
		if(bL && !bU && !bR && !bD) dir = Direction.L;
		if(bL && bU && !bR && !bD) dir = Direction.LU;
		if(!bL && bU && !bR && !bD) dir = Direction.U;
		if(!bL && bU && bR && !bD) dir = Direction.RU;
		if(!bL && !bU && bR && !bD) dir = Direction.R;
		if(!bL && !bU && bR && bD) dir = Direction.RD;
		if(!bL && !bU && !bR && bD) dir = Direction.D;
		if(bL && !bU && !bR && bD) dir = Direction.LD;
		if(!bL && !bU && !bR && !bD) dir = Direction.STOP;
	}

	public void keyReleased(KeyEvent e) {
		int key = e.getKeyCode();
		switch (key) {
		case VK_A: 
			superFire();
			break;
		case VK_CONTROL:
			fire();
			break;
		case VK_LEFT:
			bL = false;
			break;
		case VK_UP:
			bU = false;
			break;
		case VK_RIGHT:
			bR = false;
			break;
		case VK_DOWN:
			bD = false;
			break;
		default:
			break;
		}
		
		locateDirection();
	
	}

	public Rectangle getRect() {
		return new Rectangle(x, y, WIDTH, HEIGHT);
	}
	
	private void collidesWithWall(Wall w) {
		if(this.getRect().intersects(w.getRect())) {
			this.stay();
		}
	}
	
	public void collidesWithTank(Tank t) {
		if(this != t && this.getRect().intersects(t.getRect())) {
			this.stay();
			t.stay();
		}
	}
	
	public void collidesWithTanks(List<Tank> tanks) {
		for(int i=0; i<tanks.size(); i++) {
			collidesWithTank(tanks.get(i));
		}
	}
	
	public void stay() {
		this.x = oldX;
		this.y = oldY;
	}
	
}

class BloodBar {
	Tank t;
	
	BloodBar(Tank t) {
		this.t = t;
	}
	
	public void draw(Graphics g) {
		Color c = g.getColor();
		g.setColor(Color.RED);
		g.drawRect(t.x, t.y - 12, Tank.WIDTH, 10);
		g.fillRect(t.x, t.y - 12, Tank.WIDTH * t.life / 100, 10);
		g.setColor(c);
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品一区二区三区四区| 麻豆91免费看| 国产成人免费视频精品含羞草妖精 | 欧美一区二区在线观看| 蜜桃一区二区三区四区| 亚洲不卡在线观看| 337p日本欧洲亚洲大胆色噜噜| 国产高清不卡一区| 国产精品69毛片高清亚洲| 夜夜嗨av一区二区三区四季av| 日韩一区二区免费视频| av在线综合网| 性欧美疯狂xxxxbbbb| 亚洲h精品动漫在线观看| 无吗不卡中文字幕| 国产精品久久精品日日| 欧美一级片在线看| 日韩欧美一级片| 在线视频你懂得一区| 国产麻豆精品视频| 五月天激情小说综合| 日韩成人免费电影| 一区二区三区在线免费播放| 午夜av一区二区三区| 婷婷久久综合九色国产成人| 麻豆精品国产91久久久久久| 国产99久久久久久免费看农村| 午夜久久久久久久久久一区二区| 日韩精品电影一区亚洲| 一区二区三区91| 麻豆精品国产91久久久久久| 成人黄色小视频| 国产伦精品一区二区三区视频青涩 | ...xxx性欧美| 精品国产乱码久久久久久免费| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 成人动漫视频在线| 欧美日韩二区三区| 欧美激情一区二区在线| 欧美mv日韩mv国产网站| 9191国产精品| 宅男噜噜噜66一区二区66| 亚洲精品一区二区三区精华液| 国产精品白丝在线| 另类小说图片综合网| 青青草原综合久久大伊人精品 | 91视频观看视频| 国产成人亚洲综合a∨婷婷| 91豆麻精品91久久久久久| 粗大黑人巨茎大战欧美成人| 青娱乐精品视频在线| 日本久久一区二区三区| 中文字幕av一区二区三区| 看国产成人h片视频| 在线亚洲精品福利网址导航| 欧美经典一区二区| 国产精品高潮呻吟久久| 狠狠网亚洲精品| 国产成人在线视频网址| 日韩精品在线一区二区| 午夜欧美电影在线观看| 在线精品亚洲一区二区不卡| 国产三级一区二区三区| 亚洲免费视频中文字幕| 日日摸夜夜添夜夜添亚洲女人| 色综合中文字幕| 337p亚洲精品色噜噜| 亚洲午夜一二三区视频| 国模一区二区三区白浆| 欧美一级高清片| 免费的成人av| 日韩一区二区精品葵司在线| 美国av一区二区| 日韩欧美成人激情| 久草精品在线观看| 色天使久久综合网天天| 精品国产一区二区三区久久久蜜月 | 日韩成人精品在线观看| 在线不卡免费av| 中文字幕电影一区| 成人开心网精品视频| 国产精品欧美久久久久一区二区| 亚洲成人免费观看| 欧美日韩一二三| 国产精品女人毛片| 99精品欧美一区二区三区小说| 亚洲天堂精品视频| 激情综合色综合久久综合| 日韩精品一区二区三区三区免费| 精品一区二区三区视频| 国产网站一区二区| 色网站国产精品| 一区二区三区久久久| 99精品久久99久久久久| 亚洲自拍偷拍欧美| 成人午夜免费av| 亚洲老妇xxxxxx| 国产.欧美.日韩| 一区二区三区在线影院| 欧美一区二区高清| 国产成人精品网址| 一区二区三区蜜桃网| 制服视频三区第一页精品| 国产中文字幕一区| 亚洲美女电影在线| 91精品国产综合久久精品| 国产精品一区二区黑丝| 亚洲视频免费在线| 日韩欧美综合在线| 91香蕉国产在线观看软件| 日精品一区二区| 国产精品视频一二| 欧美电影在线免费观看| 国产+成+人+亚洲欧洲自线| 亚洲成人综合在线| 国产色一区二区| 91精品欧美福利在线观看| 波多野结衣在线aⅴ中文字幕不卡| 亚洲成人激情av| 国产精品美女www爽爽爽| 欧美精品视频www在线观看 | 中文字幕免费不卡| 欧美喷水一区二区| 99久久免费视频.com| 激情五月播播久久久精品| 亚洲一区二区欧美激情| 中文字幕乱码日本亚洲一区二区 | 精品一区二区在线视频| 亚洲精品国产视频| 国产欧美日韩精品一区| 欧美一级搡bbbb搡bbbb| 91视频com| 丁香另类激情小说| 国产在线视频一区二区三区| 亚洲一区二区在线免费观看视频| 久久香蕉国产线看观看99| 7777精品伊人久久久大香线蕉完整版 | 欧美在线播放高清精品| 成人激情综合网站| 国产黑丝在线一区二区三区| 日韩成人av影视| 日韩电影在线一区二区三区| 亚洲午夜久久久久中文字幕久| 中文字幕亚洲区| 国产亚洲自拍一区| 久久嫩草精品久久久久| 不卡一区二区中文字幕| 国产在线播放一区| 久久成人18免费观看| 麻豆91免费看| 精品一区二区三区免费播放| 捆绑调教一区二区三区| 久久99久久久欧美国产| 久久99精品国产.久久久久| 麻豆专区一区二区三区四区五区| 日本在线不卡视频| 老司机午夜精品| 极品美女销魂一区二区三区 | 91日韩精品一区| 色视频成人在线观看免| 色婷婷综合久久久| 精品视频色一区| 欧美一级专区免费大片| 久久综合狠狠综合| 国产欧美一区在线| 亚洲日本一区二区三区| 亚洲国产欧美日韩另类综合 | 中文字幕日韩av资源站| 亚洲人一二三区| 亚洲mv在线观看| 免费成人结看片| 国产91对白在线观看九色| 99精品视频中文字幕| 欧美视频一区在线观看| 国产精品1区2区3区在线观看| 粉嫩av一区二区三区粉嫩| av影院午夜一区| 欧美日韩一级片在线观看| 日韩欧美国产三级| 国产蜜臀av在线一区二区三区| 亚洲精品国产视频| 美女网站色91| 91亚洲精品一区二区乱码| 91 com成人网| 中文成人av在线| 日韩电影免费一区| fc2成人免费人成在线观看播放| 欧美亚男人的天堂| 久久嫩草精品久久久久| 亚洲尤物在线视频观看| 久久99国产乱子伦精品免费| 国产成人精品免费网站| 91黄色小视频| www国产亚洲精品久久麻豆| 最近日韩中文字幕| 久久99久久久久久久久久久| 99久久99久久精品免费看蜜桃| 欧美一区二区福利视频| 亚洲丝袜自拍清纯另类| 国产美女精品一区二区三区|