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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tank.java

?? JAVA版的坦克大戰
?? JAVA
字號:
import java.awt.*;

public class Tank{
	// contral varibles
	private final int UP = 0;
	private final int DOWN = 1;
	private final int LEFT = 2;
	private final int RIGHT = 3;
	// Physical information about the tank
	private int speed;
	private int health = 1;
	private final int SIZE = 12;
	private int direction;
	private int status = 1;
	private int Tankhealth = 1;
	private int xPos, yPos, xVPos, yVPos;
	// borders
	private Rectangle Tank, TankVirtual;
	private Rectangle border = new Rectangle(10, 10, 502, 502);

//================================ Construct method ==========================================

	public Tank(int a, int b, int c, int d){
		xPos = a;
		yPos = b;
		xVPos = a;
		yVPos = b;
		direction = c;
		status = d;
		Tank = new Rectangle(xPos - 12, yPos - 12, 25, 25);
		TankVirtual  = new Rectangle(xVPos - 12, yVPos - 12, 25, 25);
	}

//================================ move ======================================================
	public void move(Enemy1[] E1, Enemy2[] E2, Enemy3[] E3, Enemy4[] E4, wall[] Wall, Steelwall[] SteelWall, river[] River){
		boolean canmoveup = true, canmovedown = true, canmoveleft = true, canmoveright = true;

		// Tank border vs. environment border
		if(xPos - SIZE - speed < border.x + 1 && direction == LEFT){
			xPos = border.x + 1 + SIZE;
			canmoveleft = false;
		}
		if(xPos + SIZE + speed> border.x + border.width - 1 && direction == RIGHT){
			xPos = border.x + border.width - 2 - SIZE;
			canmoveright = false;
		}
		if(yPos - SIZE - speed < border.y + 1 && direction == UP){
			yPos = border.y + 1 + SIZE;
			canmoveup = false;
		}
		if(yPos + SIZE + speed> border.y + border.height - 1 && direction == DOWN){
			yPos = border.y + border.height - 2 - SIZE;
			canmovedown = false;
		}

		// Tank border vs. wall border
		Rectangle[] Wallborder = new Rectangle[4];
		for(int j = 0; j < SteelWall.length; j++){
			if(SteelWall[j] != null){
				Wallborder = SteelWall[j].detailborder();
				for(int i = 0; i < 4; i++){
					if(Wallborder[i] != null){
						if(Tank.intersects(Wallborder[i])){
							if(yPos - SIZE - 7 - speed <= Wallborder[i].y + 6 && direction == UP){
								canmoveup = false;
								yPos = yVPos;
								break;
							}
							if(yPos + SIZE + 7 + speed >= Wallborder[i].y + 6 && direction == DOWN){
								canmovedown = false;
								yPos = yVPos;
								break;
							}
							if(xPos - SIZE - 7 - speed <= Wallborder[i].x + 6 && direction == LEFT){
								canmoveleft = false;
								xPos = xVPos;
								break;
							}
							if(xPos + SIZE + 7 + speed >= Wallborder[i].x + 6 && direction == RIGHT){
								canmoveright = false;
								xPos = xVPos;
								break;
							}
						}
					}
				}
			}
		}
		for(int j = 0; j < Wall.length; j++){
			if(Wall[j] != null){
				Wallborder = Wall[j].detailborder();
				for(int i = 0; i < 4; i++){
					if(Wallborder[i] != null){
						if(Tank.intersects(Wallborder[i])){
							if(yPos - SIZE - 7 - speed <= Wallborder[i].y + 6 && direction == UP){
								canmoveup = false;
								yPos = yVPos;
								break;
							}
							if(yPos + SIZE + 7 + speed >= Wallborder[i].y + 6 && direction == DOWN){
								canmovedown = false;
								yPos = yVPos;
								break;
							}
							if(xPos - SIZE - 7 - speed <= Wallborder[i].x + 6 && direction == LEFT){
								canmoveleft = false;
								xPos = xVPos;
								break;
							}
							if(xPos + SIZE + 7 + speed >= Wallborder[i].x + 6 && direction == RIGHT){
								canmoveright = false;
								xPos = xVPos;
								break;
							}
						}
					}
				}
			}
		}

		// Tank border vs. enemy border
		Rectangle Enemy1;
		for(int i = 0; i < E1.length; i++){
			if(E1[i] != null){
				Enemy1 = E1[i].getE1();
				if(Enemy1.contains(xPos + 1, yPos - 12 - speed) || Enemy1.contains(xPos - 1, yPos - 12 - speed)){
					canmoveup = false;
					yPos = E1[i].getyPos() + 25;
				}
				if(Enemy1.contains(xPos + 1, yPos + 12 + speed) || Enemy1.contains(xPos - 1, yPos + 12 + speed)){
					canmovedown = false;
					yPos = E1[i].getyPos() - 25;
				}
				if(Enemy1.contains(xPos - 12 - speed, yPos + 1) || Enemy1.contains(xPos - 12 - speed, yPos - 1)){
					canmoveleft = false;
					xPos = E1[i].getxPos() + 25;
				}
				if(Enemy1.contains(xPos + 12 + speed, yPos + 1) || Enemy1.contains(xPos + 12 + speed, yPos - 1)){
					canmoveright = false;
					xPos = E1[i].getxPos() - 25;
				}
			}
		}

		Rectangle Enemy2;
		for(int i = 0; i < E2.length; i++){
			if(E2[i] != null){
				Enemy2 = E2[i].getE1();
				if(Enemy2.contains(xPos + 1, yPos - 12 - speed) || Enemy2.contains(xPos - 1, yPos - 12 - speed)){
					canmoveup = false;
					yPos = E2[i].getyPos() + 25;
				}
				if(Enemy2.contains(xPos + 1, yPos + 12 + speed) || Enemy2.contains(xPos - 1, yPos + 12 + speed)){
					canmovedown = false;
					yPos = E2[i].getyPos() - 25;
				}
				if(Enemy2.contains(xPos - 12 - speed, yPos + 1) || Enemy2.contains(xPos - 12 - speed, yPos - 1)){
					canmoveleft = false;
					xPos = E2[i].getxPos() + 25;
				}
				if(Enemy2.contains(xPos + 12 + speed, yPos + 1) || Enemy2.contains(xPos + 12 + speed, yPos - 1)){
					canmoveright = false;
					xPos = E2[i].getxPos() - 25;
				}
			}
		}
		Rectangle Enemy3;
		for(int i = 0; i < E3.length; i++){
			if(E3[i] != null){
				Enemy3 = E3[i].getE1();
				if(Enemy3.contains(xPos + 1, yPos - 12 - speed) || Enemy3.contains(xPos - 1, yPos - 12 - speed)){
					canmoveup = false;
					yPos = E3[i].getyPos() + 25;
				}
				if(Enemy3.contains(xPos + 1, yPos + 12 + speed) || Enemy3.contains(xPos - 1, yPos + 12 + speed)){
					canmovedown = false;
					yPos = E3[i].getyPos() - 25;
				}
				if(Enemy3.contains(xPos - 12 - speed, yPos + 1) || Enemy3.contains(xPos - 12 - speed, yPos - 1)){
					canmoveleft = false;
					xPos = E3[i].getxPos() + 25;
				}
				if(Enemy3.contains(xPos + 12 + speed, yPos + 1) || Enemy3.contains(xPos + 12 + speed, yPos - 1)){
					canmoveright = false;
					xPos = E3[i].getxPos() - 25;
				}
			}
		}
		Rectangle Enemy4;
		for(int i = 0; i < E4.length; i++){
			if(E4[i] != null){
				Enemy4 = E4[i].getE1();
				if(Enemy4.contains(xPos + 1, yPos - 12 - speed) || Enemy4.contains(xPos - 1, yPos - 12 - speed)){
					canmoveup = false;
					yPos = E4[i].getyPos() + 25;
				}
				if(Enemy4.contains(xPos + 1, yPos + 12 + speed) || Enemy4.contains(xPos - 1, yPos + 12 + speed)){
					canmovedown = false;
					yPos = E4[i].getyPos() - 25;
				}
				if(Enemy4.contains(xPos - 12 - speed, yPos + 1) || Enemy4.contains(xPos - 12 - speed, yPos - 1)){
					canmoveleft = false;
					xPos = E4[i].getxPos() + 25;
				}
				if(Enemy4.contains(xPos + 12 + speed, yPos + 1) || Enemy4.contains(xPos + 12 + speed, yPos - 1)){
					canmoveright = false;
					xPos = E4[i].getxPos() - 25;
				}
			}
		}

		// move
			if(direction == UP && canmoveup)
				yPos = yPos - speed;
			if(direction == DOWN && canmovedown)
				yPos = yPos + speed;
			if(direction == LEFT && canmoveleft)
				xPos = xPos - speed;
			if(direction == RIGHT && canmoveright)
				xPos = xPos + speed;

		for(int i = 0; i < River.length; i ++){
			if((River[i].Riverborder()).intersects(Tank)){
				xPos = xVPos;
				yPos = yVPos;
			}
		}

		// the graphical border of the tank
		Tank = new Rectangle(xPos - 12, yPos - 12, 25, 25);

		// the Virtual border of the tank which you can't see, but importnat for the calculations
		int a = (xPos - 10)/25;
		int b = (xPos - 10)%25;
		if(b < 7)
			b = 0;
		if(b > 18)
			b = 25;
		if((b < 19 && b > 6) || xPos < 17 || xPos > 492)
			b = 13;
		xVPos = a*25 + b + 10;

		int c = (yPos - 10)/25;
		int d = (yPos - 10)%25;
		if(d < 7)
			d = 0;
		if(d > 18)
			d = 25;
		if((d < 19 && d > 6) || yPos < 17 || yPos > 492)
			d = 13;

		yVPos = c*25 + d + 10;
		TankVirtual  = new Rectangle(xVPos - 12, yVPos - 12, 25, 25);
	}

//================================== other help methods======================================
	public int getImageNo(){
		return ((status - 1)*4 + direction);
	}

	public void ChangeFace(int a){
		direction = a;
		if(a == 0 || a == 1)
			xPos = xVPos;
		if(a == 2 || a == 3)
			yPos = yVPos;
		speed = 0;
	}

	public int getDirection(){
		return direction;
	}

	public void accelerate(){
		if(speed < 3)
			speed++;
	}

	public int getStatus(){
		return status;
	}

	public void changeStatus(int a){
		status = a;
	}

	public void powerup(){
		if(health < 2)
			health++;
	}

	public void hurt(){
		health--;
	}

	public int gettankhealth(){
		return health;
	}

	public Rectangle getBorder(){
		return Tank;
	}

	public Rectangle getVBorder(){
		return TankVirtual;
	}

	public int getxPos(){
		return xPos;
	}

	public int getyPos(){
		return yPos;
	}

	public int getxVPos(){
		return xVPos;
	}

	public int getyVPos(){
		return yVPos;
	}

	public void changePosition(int a, int b, int c){
		xPos = a;
		yPos = b;
		xVPos = a;
		yVPos = b;
		direction = c;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清av一区二区| 久久久精品国产免费观看同学| 69堂精品视频| 国产精品视频九色porn| 亚洲大型综合色站| 高清国产一区二区| 日韩欧美一区二区不卡| 亚洲成国产人片在线观看| 成人综合激情网| 欧美一卡2卡3卡4卡| 一区二区三区小说| 成人自拍视频在线观看| 日韩天堂在线观看| 亚洲成人av福利| 91免费国产在线| 国产欧美一区二区精品久导航| 免费成人在线影院| 欧美三区免费完整视频在线观看| 日本一区二区视频在线| 免费的成人av| 欧美二区在线观看| 亚洲综合免费观看高清完整版| 国产一区在线看| 精品国产髙清在线看国产毛片| 一区二区三区四区亚洲| 成人av免费在线播放| 精品国产91九色蝌蚪| 奇米一区二区三区av| 欧美视频日韩视频在线观看| 亚洲欧美日韩成人高清在线一区| 国产成人综合网| 国产午夜精品理论片a级大结局| 天天综合网天天综合色| 欧美电影一区二区| 一区二区欧美国产| 欧美综合一区二区| 亚洲一区二区三区四区在线观看 | 国产91丝袜在线播放| 欧美精品一区二区三区高清aⅴ | 成人欧美一区二区三区小说 | 国产在线国偷精品产拍免费yy| 91精品国产综合久久久蜜臀粉嫩| 亚洲福中文字幕伊人影院| 欧美视频一二三区| 日欧美一区二区| 欧美视频完全免费看| 日韩成人一级片| 日韩精品专区在线| 韩国三级电影一区二区| 国产欧美综合在线| 97aⅴ精品视频一二三区| 亚洲视频精选在线| 欧美日韩亚洲丝袜制服| 免费亚洲电影在线| 久久青草欧美一区二区三区| 懂色av一区二区三区免费观看| 国产精品久久久久永久免费观看 | 欧美一级精品大片| 狠狠色综合日日| 国产精品乱子久久久久| 色哟哟一区二区| 欧美a级一区二区| 国产精品视频免费| 欧美日韩亚洲综合在线| 国产一区视频导航| 亚洲三级免费观看| 91精品视频网| eeuss影院一区二区三区| 午夜精品一区二区三区三上悠亚| 欧美xxx久久| 91视频com| 久久爱www久久做| 亚洲女同ⅹxx女同tv| 日韩欧美中文字幕一区| 91丨九色丨蝌蚪丨老版| 青草国产精品久久久久久| 国产精品家庭影院| 日韩精品在线一区二区| 欧美日韩国产中文| 亚洲午夜免费电影| 久久尤物电影视频在线观看| 99久久精品国产观看| 麻豆精品一区二区综合av| 国产精品免费aⅴ片在线观看| 6080亚洲精品一区二区| 风间由美中文字幕在线看视频国产欧美 | 国产精品综合二区| 亚洲一二三区在线观看| 国产欧美日韩另类一区| 日韩欧美色综合| 91极品视觉盛宴| 成人一级片网址| 精品一区在线看| 五月天亚洲婷婷| 亚洲另类一区二区| 国产精品国产三级国产普通话三级 | 中文字幕中文字幕中文字幕亚洲无线| 欧美久久久久中文字幕| 91免费在线视频观看| 国产精品小仙女| 韩国中文字幕2020精品| 日本成人在线不卡视频| 亚洲小说欧美激情另类| 亚洲丝袜精品丝袜在线| 日韩一区在线免费观看| 国产精品盗摄一区二区三区| 国产校园另类小说区| 久久综合精品国产一区二区三区| 91精品国产入口| 欧美久久久久中文字幕| 欧美精品第一页| 666欧美在线视频| 91精品国产乱| 555夜色666亚洲国产免| 欧美群妇大交群中文字幕| 欧美色网站导航| 欧美网站大全在线观看| 欧美视频一区二区在线观看| 欧美在线你懂得| 欧美视频在线一区| 欧美一区二区视频在线观看2020 | 中文字幕一区二区三区不卡| 欧美国产成人精品| 国产精品福利影院| 亚洲婷婷在线视频| 亚洲精品久久久蜜桃| 亚洲国产视频在线| 日本成人在线电影网| 国产在线播放一区三区四| 激情综合五月婷婷| 成人av免费观看| 欧美性感一区二区三区| 欧美久久久久久蜜桃| 久久综合九色欧美综合狠狠 | 99久久精品国产毛片| 色中色一区二区| 欧美三日本三级三级在线播放| 精品视频在线免费观看| 日韩一区二区免费电影| 久久欧美中文字幕| 国产精品久久久久精k8| 亚洲国产欧美一区二区三区丁香婷 | 国产一区二区导航在线播放| 成人av高清在线| 欧美日韩国产小视频| 亚洲精品一区二区三区福利| 欧美韩国日本一区| 亚洲一区在线视频观看| 蜜臀av性久久久久蜜臀av麻豆| 国产一区 二区| 色综合 综合色| 欧美成人video| 一区二区三区自拍| 久久精品99国产精品日本| 91在线视频在线| 日韩一区二区三区视频在线 | 欧美一区二区三区男人的天堂| www国产精品av| 亚洲一区二区在线免费看| 蜜臀av性久久久久蜜臀aⅴ流畅| 不卡的av电影在线观看| 欧美一区二区三区免费在线看| 欧美国产欧美亚州国产日韩mv天天看完整| 一区二区免费在线播放| 国内精品国产成人国产三级粉色| 91丝袜美腿高跟国产极品老师| 日韩视频一区二区三区在线播放| 国产精品美女一区二区在线观看| 亚洲成人你懂的| 成人av在线观| 久久网这里都是精品| 亚洲va在线va天堂| 成人短视频下载| 久久婷婷综合激情| 日韩成人精品在线| 色综合色综合色综合色综合色综合 | 中文字幕中文字幕中文字幕亚洲无线| 全国精品久久少妇| 91福利社在线观看| 亚洲欧洲国产日韩| 国产超碰在线一区| 日韩美女在线视频| 天堂成人国产精品一区| 色综合一区二区三区| 久久女同互慰一区二区三区| 日韩高清在线观看| 欧美视频在线观看一区二区| 亚洲欧美偷拍三级| 99视频在线观看一区三区| 欧美激情在线一区二区三区| 精品一二三四在线| 欧美电影免费观看完整版| 午夜精品一区二区三区免费视频 | 午夜激情综合网| 欧洲视频一区二区| 一区二区三区**美女毛片| 一本色道久久综合亚洲aⅴ蜜桃| 中文字幕中文在线不卡住| 国产精品99久久久久久宅男| 久久久91精品国产一区二区三区|