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

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

?? tank.java

?? 網絡版坦克大戰游戲
?? JAVA
字號:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.util.Random;

public class Tank {
	int id;
	
	public static final int XSPEED = 5;
	public static final int YSPEED = 5;
	
	public static final int WIDTH = 30;
	public static final int HEIGHT = 30;
	
	boolean good;
	int x, y;
	
	private static Random r = new Random();
	
	private boolean live = true;
	
	private int step = r.nextInt(12) + 3;
	
	TankClient tc;
	
	boolean bL, bU, bR, bD;
		
	Dir dir = Dir.STOP;
	Dir ptDir = Dir.D;
	
	public Tank(int x, int y, boolean good) {
		this.x = x;
		this.y = y;
		this.good = good;
	}
	
	public Tank(int x, int y, boolean good, Dir 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.drawString("id:" + id, x, y-10);
		g.setColor(c);
		
		switch(ptDir) {
		case L:	
			g.drawLine(x + WIDTH/2, y + HEIGHT/2, x, y + HEIGHT/2);
			break;
		case LU:
			g.drawLine(x + WIDTH/2, y + HEIGHT/2, x, y);
			break;
		case U:
			g.drawLine(x + WIDTH/2, y + HEIGHT/2, x + WIDTH/2, y);
			break;
		case RU:
			g.drawLine(x + WIDTH/2, y + HEIGHT/2, x + WIDTH, y);
			break;
		case R:
			g.drawLine(x + WIDTH/2, y + HEIGHT/2, x + WIDTH, y + HEIGHT/2);
			break;
		case RD:
			g.drawLine(x + WIDTH/2, y + HEIGHT/2, x + WIDTH, y + HEIGHT);
			break;
		case D:
			g.drawLine(x + WIDTH/2, y + HEIGHT/2, x + WIDTH/2, y + HEIGHT);
			break;
		case LD:
			g.drawLine(x + WIDTH/2, y + HEIGHT/2, x, y + HEIGHT);
			break;
		}
		
		move();
	}

	private void move() {
		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(dir != Dir.STOP) {
			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) {
			if(step == 0) {
				step = r.nextInt(12) + 3;
				Dir[] dirs = Dir.values();
				dir = dirs[r.nextInt(dirs.length)];
			}
			step --;
			if(r.nextInt(40) > 38) this.fire();
		}*/
		
	}

	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();
	}

	private void locateDirection() {
		Dir oldDir = this.dir;
		
		if(bL && !bU && !bR && !bD) dir = Dir.L;
		else if(bL && bU && !bR && !bD) dir = Dir.LU;
		else if(!bL && bU && !bR && !bD) dir = Dir.U;
		else if(!bL && bU && bR && !bD) dir = Dir.RU;
		else if(!bL && !bU && bR && !bD) dir = Dir.R;
		else if(!bL && !bU && bR && bD) dir = Dir.RD;
		else if(!bL && !bU && !bR && bD) dir = Dir.D;
		else if(bL && !bU && !bR && bD) dir = Dir.LD;
		else if(!bL && !bU && !bR && !bD) dir = Dir.STOP;
		
		if(dir != oldDir) {
			TankMoveMsg msg = new TankMoveMsg(id, x, y, dir);
			tc.nc.send(msg);
		}
	}

	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();
	}
	
	private Missile fire() {
		int x = this.x + WIDTH/2 - Missile.WIDTH/2;
		int y = this.y + HEIGHT/2 - Missile.HEIGHT/2;
		Missile m = new Missile(id, x, y, this.good, this.ptDir, this.tc);
		tc.missiles.add(m);
		
		MissileNewMsg msg = new MissileNewMsg(m);
		tc.nc.send(msg);
		
		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;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色国产精品一区在线观看| 91精品欧美一区二区三区综合在| 经典一区二区三区| 日韩电影一区二区三区四区| 亚洲一二三区不卡| 亚洲一区二区3| 亚洲电影一级片| 日韩黄色小视频| 欧美96一区二区免费视频| 日韩精品一二三四| 久久99精品一区二区三区三区| 人人超碰91尤物精品国产| 日本成人在线看| 美女尤物国产一区| 国产福利一区二区三区在线视频| 国产成a人亚洲精| 99re在线视频这里只有精品| 色综合久久精品| 欧美四级电影网| 日韩欧美一区二区久久婷婷| 久久久亚洲欧洲日产国码αv| 中文一区一区三区高中清不卡| 日韩一区在线看| 亚洲国产精品久久人人爱| 日韩av高清在线观看| 久久精品久久99精品久久| 国产一区二区在线视频| thepron国产精品| 欧美精品国产精品| 精品国产一区二区亚洲人成毛片| 欧美国产激情一区二区三区蜜月| 亚洲裸体在线观看| 五月婷婷激情综合网| 日韩欧美一二区| 欧美高清视频在线高清观看mv色露露十八 | 欧美tickling网站挠脚心| 高清国产一区二区| 国产激情视频一区二区在线观看| 色哟哟欧美精品| 精品国产一二三区| 最近中文字幕一区二区三区| 香蕉影视欧美成人| 国产精品一区2区| 欧美午夜精品理论片a级按摩| 精品成a人在线观看| 亚洲品质自拍视频| 久久99精品视频| 91福利国产成人精品照片| 国产欧美日韩卡一| 麻豆精品视频在线观看免费| 丁香另类激情小说| 91超碰这里只有精品国产| 久久精品人人做人人爽人人| 亚洲精品写真福利| 国产毛片精品视频| 欧洲精品一区二区| 日本一区二区三区视频视频| 亚洲成av人片在线观看无码| 国产成人免费9x9x人网站视频| 欧美天堂一区二区三区| 91麻豆精东视频| 日韩精品成人一区二区在线| 亚洲精品在线免费观看视频| 日韩成人精品在线| 精品国产露脸精彩对白| 在线免费观看日本一区| 久久不见久久见中文字幕免费| 亚洲特黄一级片| 精品粉嫩超白一线天av| 一道本成人在线| 一区二区三区日韩在线观看| 欧美性一级生活| 国产欧美一区二区三区沐欲| 青青草国产精品97视觉盛宴| 欧美挠脚心视频网站| 美女www一区二区| 欧美女孩性生活视频| 香蕉久久夜色精品国产使用方法| 91视频一区二区三区| 亚洲最新视频在线观看| 欧美日韩aaaaa| 国产真实乱子伦精品视频| 欧美激情在线一区二区三区| 成人av在线资源网站| 另类综合日韩欧美亚洲| 国内精品久久久久影院一蜜桃| 欧美国产丝袜视频| 精品国产伦一区二区三区观看方式 | 最新国产の精品合集bt伙计| 一区二区三区小说| 成人高清伦理免费影院在线观看| 久久免费的精品国产v∧| 天天操天天干天天综合网| 欧美影院精品一区| 一区二区三区在线免费观看| 91视频xxxx| 中文字幕亚洲一区二区av在线| 国产乱码字幕精品高清av | 日本道色综合久久| 日韩码欧中文字| 成人av在线影院| 国产精品久久久久久久久久久免费看 | 不卡一卡二卡三乱码免费网站 | 国产精品久久久久久久岛一牛影视 | 国产suv精品一区二区6| 欧美日本乱大交xxxxx| 中文字幕精品三区| 极品少妇xxxx偷拍精品少妇| 欧美日韩一二三区| 成人免费一区二区三区在线观看| 激情综合网最新| 精品视频全国免费看| 亚洲天天做日日做天天谢日日欢| 亚洲欧美在线视频观看| 婷婷国产v国产偷v亚洲高清| 中文字幕在线不卡| 在线精品视频免费观看| 国产麻豆精品在线观看| 亚洲一区影音先锋| 中文字幕精品一区| 欧美一卡二卡在线| 在线视频综合导航| 精东粉嫩av免费一区二区三区| 91精品在线免费| 国产69精品久久久久毛片| 成人av免费网站| 91色综合久久久久婷婷| 国产精品视频免费| 色爱区综合激月婷婷| 午夜a成v人精品| 国产精品自产自拍| 欧美国产欧美亚州国产日韩mv天天看完整| 懂色av噜噜一区二区三区av| 亚洲色图丝袜美腿| 欧美日本韩国一区二区三区视频 | 国产一区二区三区观看| 欧美国产欧美综合| 精品视频资源站| 激情偷乱视频一区二区三区| 一色屋精品亚洲香蕉网站| 欧美日韩免费在线视频| 精品写真视频在线观看| 亚洲日韩欧美一区二区在线| 欧美一区中文字幕| 成人国产精品视频| 日本伊人午夜精品| 成人欧美一区二区三区在线播放| 欧美亚洲国产bt| 国产不卡免费视频| 亚洲综合视频在线观看| 久久日一线二线三线suv| 91在线视频观看| 久久国产欧美日韩精品| 中文字幕一区二区三区在线观看| 337p亚洲精品色噜噜狠狠| 国产iv一区二区三区| 日韩中文字幕1| 亚洲欧美中日韩| 久久综合九色欧美综合狠狠| 91精品福利在线| 高清久久久久久| 蜜臀av一区二区在线免费观看| 日韩毛片在线免费观看| 精品福利一二区| 在线观看91精品国产麻豆| 9色porny自拍视频一区二区| 久久激五月天综合精品| 亚洲精品成人悠悠色影视| 久久日韩粉嫩一区二区三区| 欧美卡1卡2卡| 91精品福利视频| 成人福利在线看| 国产美女一区二区| 免费不卡在线观看| 亚洲第一精品在线| 亚洲欧美另类图片小说| 国产欧美日韩精品一区| 日韩亚洲欧美成人一区| 欧美四级电影网| 色综合久久天天| 99精品热视频| 国产精品一区在线观看你懂的| 亚洲成人自拍网| 91蜜桃免费观看视频| 欧美国产精品劲爆| 国产日韩欧美a| 国产麻豆日韩欧美久久| 欧美色图激情小说| 国产精品乱码一区二三区小蝌蚪| 美日韩一区二区| 99re这里都是精品| av高清不卡在线| 欧美日韩视频专区在线播放| 26uuu另类欧美| 亚洲精品视频一区二区| 九九**精品视频免费播放| av中文字幕不卡| 久久久777精品电影网影网| 日韩综合小视频| 欧美videofree性高清杂交|