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

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

?? tank.java

?? 用java實現(xiàn)坦克大戰(zhàn)
?? JAVA
字號:

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class Tank {
	public static final int XSPEED = 5;
	public static final int YSPEED = 5;
	
	public static final int WIDTH = 30;
	public static final int HEIGHT = 30;
	
	private boolean live = true;
	
	TankClient tc;
	
	private boolean good;
	
	private int x, y;
	private int oldX, oldY;
	
	private static Random r = new Random();
	
	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;
	private Direction ptDir = Direction.D;
	
	private int step = r.nextInt(12) + 3;

	public Tank(int x, int y, boolean good) {
		this.x = x;
		this.y = y;
		this.oldX = x;
		this.oldY = y;
		this.good = good;
	}
	
	public Tank(int x, int y, boolean good, Direction dir,  TankClient tc) {
		this(x, y, good);
		this.dir = dir;
		this.tc = tc;
	}
	
	public void draw(Graphics g) {
		if(!live) {
			if(!good) {
				tc.tanks.remove(this);
			}
			return;
		}
		
		Color c = g.getColor();
		if(good) g.setColor(Color.RED);
		else g.setColor(Color.BLUE);
		g.fillOval(x, y, WIDTH, HEIGHT);
		g.setColor(c);
		
		switch(ptDir) {
		case L:
			g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x, y + Tank.HEIGHT/2);
			break;
		case LU:
			g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x, y);
			break;
		case U:
			g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x + Tank.WIDTH/2, y);
			break;
		case RU:
			g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x + Tank.WIDTH, y);
			break;
		case R:
			g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x + Tank.WIDTH, y + Tank.HEIGHT/2);
			break;
		case RD:
			g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x + Tank.WIDTH, y + Tank.HEIGHT);
			break;
		case D:
			g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x + Tank.WIDTH/2, y + Tank.HEIGHT);
			break;
		case LD:
			g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x, y + Tank.HEIGHT);
			break;
		}
		
		move();
	}
	
	void move() {
		
		this.oldX = x;
		this.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;
		case STOP:
			break;
		}
		
		if(this.dir != Direction.STOP) {
			this.ptDir = this.dir;
		}
		
		if(x < 0) x = 0;
		if(y < 30) y = 30;
		if(x + Tank.WIDTH > TankClient.GAME_WIDTH) x = TankClient.GAME_WIDTH - Tank.WIDTH;
		if(y + Tank.HEIGHT > TankClient.GAME_HEIGHT) y = TankClient.GAME_HEIGHT - Tank.HEIGHT;
		
		if(!good) {
			Direction[] dirs = Direction.values();
			if(step == 0) {
				step = r.nextInt(12) + 3;
				int rn = r.nextInt(dirs.length);
				dir = dirs[rn];
			}			
			step --;
			
			if(r.nextInt(40) > 38) this.fire();
		}
		
		
	}
	
	private void stay() {
		x = oldX;
		y = oldY;
	}
	
	public void keyPressed(KeyEvent e) {
		int key = e.getKeyCode();
		switch(key) {
		case KeyEvent.VK_LEFT :
			bL = true;
			break;
		case KeyEvent.VK_UP :
			bU = true;
			break;
		case KeyEvent.VK_RIGHT :
			bR = true;
			break;
		case KeyEvent.VK_DOWN :
			bD = true;
			break;
		}
		locateDirection();
	}
	
	void locateDirection() {
		if(bL && !bU && !bR && !bD) dir = Direction.L;
		else if(bL && bU && !bR && !bD) dir = Direction.LU;
		else if(!bL && bU && !bR && !bD) dir = Direction.U;
		else if(!bL && bU && bR && !bD) dir = Direction.RU;
		else if(!bL && !bU && bR && !bD) dir = Direction.R;
		else if(!bL && !bU && bR && bD) dir = Direction.RD;
		else if(!bL && !bU && !bR && bD) dir = Direction.D;
		else if(bL && !bU && !bR && bD) dir = Direction.LD;
		else if(!bL && !bU && !bR && !bD) dir = Direction.STOP;
	}

	public void keyReleased(KeyEvent e) {
		int key = e.getKeyCode();
		switch(key) {
		case KeyEvent.VK_CONTROL:
			fire();
			break;
		case KeyEvent.VK_LEFT :
			bL = false;
			break;
		case KeyEvent.VK_UP :
			bU = false;
			break;
		case KeyEvent.VK_RIGHT :
			bR = false;
			break;
		case KeyEvent.VK_DOWN :
			bD = false;
			break;
		}
		locateDirection();		
	}
	
	public Missile fire() {
		if(!live) return null;
		int x = this.x + Tank.WIDTH/2 - Missile.WIDTH/2;
		int y = this.y + Tank.HEIGHT/2 - Missile.HEIGHT/2;
		Missile m = new Missile(x, y, good, ptDir, this.tc);
		tc.missiles.add(m);
		return m;
	}
	
	public Rectangle getRect() {
		return new Rectangle(x, y, WIDTH, HEIGHT);
	}

	public boolean isLive() {
		return live;
	}

	public void setLive(boolean live) {
		this.live = live;
	}

	public boolean isGood() {
		return good;
	}
	
	public boolean collidesWithWall(Wall w) {
		if(this.live && this.getRect().intersects(w.getRect())) {
			this.stay();
			return true;
		}
		return false;
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲春色中文字幕久久久| 中文av一区特黄| 欧美日韩国产综合视频在线观看| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 一区二区三区欧美激情| 亚洲男同1069视频| 丁香六月综合激情| 久久久久久久久伊人| 精品久久久久99| 欧美mv和日韩mv的网站| 久久久影院官网| 国产欧美日韩精品在线| 中文字幕中文字幕中文字幕亚洲无线| 国产精品乱码人人做人人爱| 中文字幕欧美一| 亚洲狠狠爱一区二区三区| 三级成人在线视频| 精品一区二区影视| 成人午夜电影网站| 91老师片黄在线观看| 欧美视频一区在线| 精品成人佐山爱一区二区| 欧美激情一区不卡| 亚洲女同ⅹxx女同tv| 亚洲第一福利视频在线| 蜜臂av日日欢夜夜爽一区| 丁香六月久久综合狠狠色| 91国产免费看| 日韩欧美成人激情| 亚洲欧洲性图库| 日韩黄色小视频| 国产成人aaa| 亚洲综合成人网| 免费在线观看成人| 成人三级伦理片| 欧美日韩夫妻久久| 久久久久久99久久久精品网站| 亚洲欧洲日韩一区二区三区| 日韩在线一区二区| 国产成人免费在线视频| 欧美性一区二区| 国产日韩欧美a| 亚洲国产中文字幕| 成人小视频在线观看| 欧美精品tushy高清| 国产精品久久久久久久蜜臀| 日韩精品视频网| 91在线视频网址| 91精品婷婷国产综合久久性色| 欧美国产成人精品| 日韩高清不卡一区二区三区| 成人免费av网站| 91麻豆精品国产91| 亚洲欧洲av另类| 麻豆国产91在线播放| 在线免费观看视频一区| 精品国产一区二区三区四区四 | 三级久久三级久久久| 成人免费视频视频| 国产一二精品视频| 一本大道久久a久久综合婷婷| 日韩精品一区二区三区中文不卡| 中文字幕一区三区| 国产综合色视频| 欧美日韩亚洲综合在线| 国产精品青草综合久久久久99| 天堂久久一区二区三区| 色婷婷精品大在线视频| 日韩成人一区二区三区在线观看| 国产.精品.日韩.另类.中文.在线.播放| 欧美日韩一区精品| 亚洲视频在线一区| 成人综合在线观看| 久久亚洲精品国产精品紫薇| 日日夜夜精品视频免费| 91麻豆swag| 中文字幕五月欧美| 国产传媒日韩欧美成人| 日韩欧美国产精品| 亚洲不卡在线观看| 在线一区二区三区四区五区 | 亚洲精品乱码久久久久久日本蜜臀| 国模冰冰炮一区二区| 日韩欧美在线123| 午夜精品久久久久久久久久久| 91丨国产丨九色丨pron| 18成人在线观看| 成人黄色片在线观看| 国产亚洲精品久| 国产老妇另类xxxxx| 欧美精品一区二区三区在线播放| 午夜不卡av在线| 欧美在线不卡视频| 亚洲国产日产av| 欧美少妇性性性| 亚洲18色成人| 欧美日韩一级二级| 午夜欧美电影在线观看| 欧洲精品一区二区三区在线观看| 亚洲免费伊人电影| 一本久久a久久精品亚洲| 亚洲天堂中文字幕| 色8久久精品久久久久久蜜| 亚洲精品老司机| 91福利精品第一导航| 亚洲一区日韩精品中文字幕| 欧美性高清videossexo| 亚洲自拍另类综合| 777久久久精品| 久久国产综合精品| 久久日韩粉嫩一区二区三区| 国产精品一区在线观看乱码| 国产精品久久久久久妇女6080| 99综合影院在线| 亚洲精品日日夜夜| 欧美精选一区二区| 国模娜娜一区二区三区| 欧美国产一区视频在线观看| www.亚洲激情.com| 曰韩精品一区二区| 欧美日韩美女一区二区| 久久精品国内一区二区三区| 久久免费午夜影院| 97久久精品人人做人人爽| 亚洲香肠在线观看| 精品国产一区二区亚洲人成毛片 | 日本韩国一区二区| 午夜久久久久久电影| 欧美成人一区二区三区| 国产成人自拍网| 亚洲黄色在线视频| 欧美一级二级三级乱码| 国产99久久久久久免费看农村| 专区另类欧美日韩| 欧美精品1区2区3区| 国产91丝袜在线播放0| 亚洲免费观看高清完整版在线观看 | 欧美aⅴ一区二区三区视频| 久久久蜜桃精品| 色综合婷婷久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产欧美日韩精品a在线观看| 在线精品视频免费播放| 蜜桃视频一区二区三区在线观看| 国产日产欧美一区二区视频| 91豆麻精品91久久久久久| 蜜臀久久久久久久| 亚洲欧洲另类国产综合| 91精品中文字幕一区二区三区| 色综合色综合色综合 | 日本美女一区二区三区视频| 久久美女艺术照精彩视频福利播放| 欧美第一区第二区| 久久精品一区二区| 欧美国产日韩在线观看| 亚洲欧美激情小说另类| 樱花草国产18久久久久| 日本vs亚洲vs韩国一区三区 | 欧美私模裸体表演在线观看| 国产一区在线视频| 亚洲成人精品在线观看| 国产精品理论片在线观看| 欧美放荡的少妇| 色综合中文字幕国产 | 麻豆国产一区二区| 欧美一区欧美二区| 亚洲色图视频免费播放| 久久亚洲精品小早川怜子| 亚洲成人一区二区在线观看| 精品对白一区国产伦| 欧美人体做爰大胆视频| 91丨porny丨户外露出| 国产精品一区在线| 在线免费观看一区| 亚洲自拍偷拍av| 91精品在线一区二区| 国产在线精品一区二区三区不卡| 色狠狠一区二区| 亚洲一区二区三区自拍| 国产乱人伦精品一区二区在线观看 | 国产精品资源在线| 日本二三区不卡| 亚洲视频一区在线观看| 国产高清不卡一区二区| 亚洲精品免费在线播放| 国产午夜亚洲精品不卡| 欧美日韩大陆在线| 亚洲高清在线精品| 国产精品电影一区二区| 国产亚洲va综合人人澡精品| 日韩一区二区三区免费看 | 美女任你摸久久| 婷婷六月综合网| 亚洲午夜精品网| 亚洲一二三四区| 一区二区三区91| 一区二区三区四区精品在线视频 | 蜜桃久久久久久| 男人的天堂久久精品| 亚洲福利电影网|