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

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

?? lmghunter.java

?? 用java開發(fā)的一個實施策略游戲源碼 值得學習一下
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
		lowerHalf.rotate(vr[0], Point3D.unitUp, 10);
		vr[1].doRotate(Point3D.origin, Point3D.unitUp, 10);
		vr[2].doRotate(Point3D.origin, Point3D.unitUp, 10);
		ZListNode zln;
		int n=0;
		for(zln = zol.zNode; zln != null; zln = zln.getNext()) {
			n++;
		}
		ZListNode zlna[] = new ZListNode[n];
		n=0;
		for(zln = zol.zNode; zln != null; zln = zln.getNext()) {
			zlna[n++] = zln;
		}
		for(n=0;n<zlna.length;n++) {
			zlna[n].getThing().update();
		}
		zol.update();
	}
	
	/** Do the processing for a frame of animation while rotating right.  */
	protected void animateRotateRight() {
		lowerHalf.rotate(vr[0], Point3D.unitUp, 350);
		vr[1].doRotate(Point3D.origin, Point3D.unitUp, 350);
		vr[2].doRotate(Point3D.origin, Point3D.unitUp, 350);
		ZListNode zln;
		int n=0;
		for(zln = zol.zNode; zln != null; zln = zln.getNext()) {
			n++;
		}
		ZListNode zlna[] = new ZListNode[n];
		n=0;
		for(zln = zol.zNode; zln != null; zln = zln.getNext()) {
			zlna[n++] = zln;
		}
		for(n=0;n<zlna.length;n++) {
			zlna[n].getThing().update();
		}
		zol.update();
	}
	
	/** Returns the number of damage points to be ignored from each hit.
	 * Under standard health/armor rules, a unit cannot take less than 1 damage per hit.
	 * @return The armor value of the unit.
	 */
	protected int armor() {
		return 2;
	}
	
	/** Returns the number of Hexes to get within if in Pursuit Mode.
	 * As long as the Unit is this close to its target, it will remain stationary and fire.
	 * This allows long range Units to abuse their range advantage by staying back while firing.
	 * @return The range to approach to, in hexes.
	 */
	public int followRange() {
		return 3;
	}
	
	/** Returns the number of frames needed to move forward one hex.
	 * @return How many frames it takes to move one hex.
	 */
	protected int framesToMove() {
		return 12;
	}
	
	/** Returns the number of frames needed to rotate one hex-side.
	 * @return How many frames it takes to rotate sixty degrees.
	 */
	protected int framesToRotate() {
		return 6;
	}
	
	/** Returns The maximum value of health for this Unit, which is the initial value for health.
	 * @return The amount of damage that must be taken to destroy the Unit.
	 */
	protected int maxHealth() {
		return 200;
	}
	
	/** If a turret is available, rotate it toward the target.
	 * @return true iff the target is within the firing arc.
	 */
	protected boolean aim() {
		if(target != null && target.isDead()) {
			target = null;
			targetSSMDS = null;
			if(mode == 2)
				mode = 0;
			return false;
		}
		Point3D vec;
		if(target != null) vec = targetSSMDS.getVector(this);
		else vec = vr[1]; //Aim forward (don't fire)
		float fore = (vec.x * vr[3].x + vec.y * vr[3].y);
		float left = (vec.y * vr[4].y + vec.x * vr[4].x);
		float cosine = (float)(fore / (Math.sqrt(fore * fore + left * left)));
		boolean aimLeft = (left > 0);
		int aimAngle;
		if(cosine > Trig.cos(1)) {
			aimAngle = 0;
		}else if(cosine > Trig.cos(2)) {
			aimAngle = 1;
		}else if(cosine > Trig.cos(3)) {
			aimAngle = 2;
		}else if(cosine > Trig.cos(4)) {
			aimAngle = 3;
		}else if(cosine > Trig.cos(5)) {
			aimAngle = 4;
		}else if(cosine > Trig.cos(10)){
			aimAngle = 5;
		}else{
			aimAngle = 10;
		}
		if(aimAngle == 0) aimLeft = true;
		upperHalf.rotate(upperHalf.getPoint(1), Point3D.unitUp, (aimLeft)?(aimAngle):(360 - aimAngle));
		vr[3].doRotate(Point3D.origin, Point3D.unitUp, (aimLeft)?(aimAngle):(360 - aimAngle));
		vr[4].doRotate(Point3D.origin, Point3D.unitUp, (aimLeft)?(aimAngle):(360 - aimAngle));
		ZListNode zln;
		int n=0;
		for(zln = zol.zNode; zln != null; zln = zln.getNext()) {
			n++;
		}
		ZListNode zlna[] = new ZListNode[n];
		n=0;
		for(zln = zol.zNode; zln != null; zln = zln.getNext()) {
			zlna[n++] = zln;
		}
		for(n=0;n<zlna.length;n++) {
			zlna[n].getThing().update();
		}
		zol.update();
		return (aimAngle < 5 && target != null && target.getPlayer() != myPlayer);		
	}
	
	/** Perform the data changes for one frame of animation while dying. */
	protected void animateDie() {
		if(frame == framesToDie())
			zol.explode((new Point3D(0,0,-5)).doSum(vr[0]));
		frame--;
		if(frame == 0) {
			remove();
			Hex.getHex(resX,resY).unreserve();
			Hex.getHex(x,y).leave(this);
		}
	}
	
	protected void animateMake() {
	}
	
	/** Draw this GameObject onto GameViewer v, by using v's drawing methods.
	 * @param v The GameViewer which will display this GameObject.
	 * @see netwar.gui.HexViewer
	 */
	public void draw(GameViewer v) {
		zol.draw(v);
	}
	
	/** Returns the number of frames of animation for the death sequence.
	 * @return The number of frames needed to animate death.
	 */
	protected int framesToDie() {
		return 5;
	}
	
	/** Returns the number of frames of animation for the creation sequence.
	 * @return The number of frames needed to animate creation.
	 */
	protected int framesToMake() {
		return 20;
	}
	
	/** Return the height of this GameObject for selection box and explosion hit calculations.
	 * @return The height of the GameObject in game-space units.
	 */
	public float getHeight() {
		return upperHalf.getPoint(1).z;
	}
	
	/** Return the width of this GameObject for selection box and explosion hit calculations.
	 * @return The width of the GameObject in game-space units.
	 */
	public float getWidth() {
		return 7.0f;
	}
	
	/** Return the number of frames to wait between firing shots.
	 */
	public int weaponDelay() {
		return 1;
	}
	
	/** Return the square of the maximum weapon range of this GameObject.
	 * @return The square of the weapons range in game-space units.
	 */
	public float weaponRangeSquared() {
		return 6400f;
	}
	
	public float scanRangeSquared() {
		return 25600f;
	}

	
	/** LMGHunter fires a Laser.
	 * Laser is a straight flying shot which can only damage its intended target.
	 * It explodes when the angle between it velocity and the vector to its target exceeds 90 degrees.
	 * <BR> Initial location = varies.
	 * <BR> Initial velocity = five units, level with the ground, in the aimed direction.
	 * <BR> Base damage = 6
	 * <BR> Radius of explosion = 5 units.
	 * <BR> Life of projectile = 18 cycles.
	 */
	protected boolean fire() {
		Projectile.newProjectile(new Laser(Color.green), (leftFire)?(upperHalf.getPoint(5)):(upperHalf.getPoint(6)), vr[3].getProduct(5), 10, 25, 18, this, target);
		leftFire = !leftFire;
		return true;
	}
        public int cost() {
                return 150;
        }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩影视精品| 精品国产免费一区二区三区四区| 麻豆91免费观看| 亚洲一区二区欧美日韩 | 亚洲国产精品一区二区www在线| 久久亚洲精精品中文字幕早川悠里| 欧美一区二区人人喊爽| 日韩一二在线观看| 精品国产sm最大网站免费看| 精品对白一区国产伦| 精品黑人一区二区三区久久| 久久久亚洲精华液精华液精华液| 精品蜜桃在线看| 久久久国产午夜精品| 国产精品视频yy9299一区| 国产精品嫩草影院av蜜臀| 亚洲欧洲综合另类在线| 亚洲午夜日本在线观看| 日本欧美加勒比视频| 国产一区视频导航| 不卡一区二区三区四区| 91麻豆国产精品久久| 欧美日韩国产一区| 精品久久久久99| 国产精品国产三级国产有无不卡| 亚洲激情男女视频| 青青草原综合久久大伊人精品优势| 美国三级日本三级久久99| 国产激情精品久久久第一区二区| 成人午夜电影小说| 欧美三区在线观看| 久久伊人蜜桃av一区二区| 亚洲欧洲成人精品av97| 亚洲.国产.中文慕字在线| 极品销魂美女一区二区三区| 成人av电影免费在线播放| 欧美高清视频www夜色资源网| xfplay精品久久| 亚洲狼人国产精品| 开心九九激情九九欧美日韩精美视频电影 | 2020国产精品自拍| 亚洲视频在线观看一区| 蜜臀久久久久久久| 99国产精品久久| 精品嫩草影院久久| 亚洲精品va在线观看| 韩国av一区二区三区四区| 在线一区二区三区四区五区| 精品国产乱码久久久久久夜甘婷婷 | 日韩av一区二区三区四区| 成人午夜av电影| 日韩精品中午字幕| 亚洲国产综合色| 国产69精品一区二区亚洲孕妇| 欧美三级在线看| 国产精品福利一区| 国产毛片精品视频| 91精品国产欧美一区二区18| 亚洲人一二三区| 国产福利精品导航| 日韩一区二区三区免费观看| 国产成人免费视频网站| 777精品伊人久久久久大香线蕉| 国产精品丝袜在线| 国产一区啦啦啦在线观看| 欧美精品在线视频| 亚洲国产日日夜夜| 色8久久精品久久久久久蜜| 国产日本一区二区| 国产裸体歌舞团一区二区| 91精品国产全国免费观看| 亚洲午夜影视影院在线观看| av在线不卡免费看| 国产精品久久久爽爽爽麻豆色哟哟| 国产曰批免费观看久久久| 欧美大片在线观看一区二区| 三级欧美韩日大片在线看| 欧美亚日韩国产aⅴ精品中极品| 亚洲日本va午夜在线影院| 99精品视频在线观看免费| 最新日韩在线视频| 91丨九色丨蝌蚪富婆spa| 国产精品国产成人国产三级| 波多野结衣中文一区| 中文字幕一区二区三区不卡在线| 成人激情黄色小说| 中文字幕永久在线不卡| 91色porny蝌蚪| 亚洲另类色综合网站| 欧美日韩国产综合一区二区三区 | 一区二区三区日韩欧美精品| 日本韩国视频一区二区| 亚洲午夜精品网| 欧美裸体bbwbbwbbw| 美女在线观看视频一区二区| 精品久久国产老人久久综合| 国产一区二区久久| 亚洲色图在线播放| 欧美三级日韩三级| 久久99精品网久久| 欧美极品aⅴ影院| 色综合天天性综合| 男女性色大片免费观看一区二区 | 在线播放欧美女士性生活| 蜜桃免费网站一区二区三区| 久久色中文字幕| 91香蕉视频黄| 蜜桃一区二区三区在线| 国产精品白丝在线| 5858s免费视频成人| 国产精品一区二区无线| 亚洲女子a中天字幕| 日韩一级成人av| 99久久久精品免费观看国产蜜| 午夜精品福利一区二区蜜股av| 久久亚洲精品小早川怜子| 色av成人天堂桃色av| 国内欧美视频一区二区| 亚洲日本一区二区三区| 日韩精品一区二区三区中文精品 | 一区二区欧美在线观看| 日韩免费高清视频| 91浏览器打开| 国产精品一区二区91| 亚洲一区二区免费视频| 国产欧美一区视频| 欧美一卡二卡在线| 欧洲国内综合视频| 丁香婷婷综合激情五月色| 视频一区欧美日韩| 亚洲欧美一区二区视频| 久久无码av三级| 日韩一二三区不卡| 欧美性感一区二区三区| 不卡一区二区在线| 国产麻豆精品在线| 久久99精品视频| 亚洲图片欧美色图| 亚洲欧美日韩一区二区 | 亚洲欧美国产三级| 中文字幕精品一区二区精品绿巨人| 欧美妇女性影城| 欧美久久久久久蜜桃| 欧美伊人久久久久久久久影院| 成人av高清在线| 成人性生交大片免费看中文网站| 久久99精品久久久| 蜜乳av一区二区| 日本欧美加勒比视频| 三级精品在线观看| 日韩精品每日更新| 日韩一区精品视频| 午夜精品在线看| 天天av天天翘天天综合网| 一区二区三区日韩欧美| 一区二区三区国产精华| 亚洲男帅同性gay1069| 亚洲欧美综合色| 亚洲欧美日韩系列| 亚洲尤物视频在线| 亚洲国产精品尤物yw在线观看| 一区二区三区中文在线| 亚洲大型综合色站| 午夜精品福利一区二区三区av | 欧美久久久影院| 欧美一区二区播放| 久久婷婷国产综合国色天香| 国产欧美精品国产国产专区| 国产欧美日韩在线视频| 国产精品网曝门| 一区二区三区日本| 丝袜亚洲另类欧美综合| 蜜臀精品久久久久久蜜臀| 激情久久五月天| 成人av在线一区二区三区| 色综合久久综合网| 91麻豆精品国产无毒不卡在线观看| 8v天堂国产在线一区二区| 精品va天堂亚洲国产| 国产精品久久久久aaaa| 亚洲午夜精品在线| 国产综合久久久久久鬼色 | 性做久久久久久久免费看| 日本欧美久久久久免费播放网| 国产老肥熟一区二区三区| 99精品久久99久久久久| 欧美日韩在线一区二区| 久久这里都是精品| 亚洲伦理在线精品| 麻豆91精品视频| 波多野结衣精品在线| 欧美理论电影在线| 国产人妖乱国产精品人妖| 亚洲成av人片一区二区三区| 精品写真视频在线观看| 色婷婷久久综合| 精品999在线播放| 亚洲免费成人av| 国产精品一品二品| 欧美美女一区二区三区|