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

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

?? lmghunter.java

?? 用java開發的一個實施策略游戲源碼 值得學習一下
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package netwar.game.unit;
import java.awt.Color;
import netwar.game.*;
import netwar.game.projectile.Laser;
import netwar.utils.Trig;
import netwar.utils.vectorgraphics.*;

/** Reverse jointed walker with dual laser machine gun
 * Once this works, I'll use it to develop a general form turreted unit class
 * I think I'll figure out the thinking upgrade then:
 * I would like to make turreted units attempt a strafing manuever while they are attacking a unit
 * and are within their followRange.
 */
public class LMGHunter extends netwar.game.Unit {
	private ZOrderedList zol;
	private UnaryLink leftFoot;
	private UnaryLink rightFoot;
	CoherentPointSet lowerHalf;
	CoherentPointSet upperHalf;
	//If left is true, fire from left gun, else fire from right gun.
	boolean leftFire = true;
	
	/** Creates a new instance of LMGHunter */
	public LMGHunter() {
	}
	protected void createVectors()
	{
		int i = f * 60 + 30;
		float L = 2f / (Trig.cos(30) - 0.5f);
		vr = new Point3D[5];

		vr[0] = Hex.getMapPoint(x,y);
		vr[1] = new Point3D(1,0,0); //Unit vector forward (legs)
		vr[2] = new Point3D(0,1,0); //Unit vector right (legs)
		vr[3] = new Point3D(1,0,0); //Unit vector forward (turret)
		vr[4] = new Point3D(0,1,0); //Unit vector left (turret)
		
		lowerHalf = new CoherentPointSet(20);
		lowerHalf.add(new SelfConvertingPoint(0,5,0));	//0: Left foot
		lowerHalf.add(new SelfConvertingPoint(0,-5,0));	//1: Right foot
		lowerHalf.add(new SelfConvertingPoint(-L * Trig.cos(45), 5, L * Trig.sin(45))); //2: Left knee (1)
		lowerHalf.add(new SelfConvertingPoint(-L * Trig.cos(45), -5, L * Trig.sin(45))); //3: Right knee (1)
		lowerHalf.add(new SelfConvertingPoint(-L * Trig.cos(45), 5, L * Trig.sin(45))); //4: Left knee (2)
		lowerHalf.add(new SelfConvertingPoint(-L * Trig.cos(45), -5, L * Trig.sin(45))); //5: Right knee (2)
		lowerHalf.add(new SelfConvertingPoint(0, 5, 2f * L * Trig.sin(45))); //6: Left Hip (1)
		lowerHalf.add(new SelfConvertingPoint(0, -5, 2f * L * Trig.sin(45))); //7: Right Hip (1)
		lowerHalf.add(new SelfConvertingPoint(0, 5, 2f * L * Trig.sin(45))); //8: Left Hip (2)
		lowerHalf.add(new SelfConvertingPoint(0, -5, 2f * L * Trig.sin(45))); //9: Right Hip (2)
		lowerHalf.add(new SelfConvertingPoint(0, 5, 2f * L * Trig.sin(45))); //10: Left Hip (3)
		lowerHalf.add(new SelfConvertingPoint(0, -5, 2f * L * Trig.sin(45))); //11: Right Hip (3)
		lowerHalf.add(new SelfConvertingPoint(5, 0, 2f * L * Trig.sin(45))); //12: Front(1)
		lowerHalf.add(new SelfConvertingPoint(5, 0, 2f * L * Trig.sin(45))); //13: Front(2)
		lowerHalf.add(new SelfConvertingPoint(0, 0, 2f * L * Trig.sin(45) - 5)); //14: Bottom(1)
		lowerHalf.add(new SelfConvertingPoint(0, 0, 2f * L * Trig.sin(45) - 5)); //15: Bottom(2)
		lowerHalf.add(new SelfConvertingPoint(0, 0, 2f * L * Trig.sin(45) - 5)); //16: Bottom(3)
		lowerHalf.add(new SelfConvertingPoint(0, 0, 2f * L * Trig.sin(45) - 5)); //17: Bottom(4)
		lowerHalf.add(new SelfConvertingPoint(-5, 0, 2f * L * Trig.sin(45))); //18: Back(1)
		lowerHalf.add(new SelfConvertingPoint(-5, 0, 2f * L * Trig.sin(45))); //19: Back(2)
		
		GraphicThing gts[] = new GraphicThing[8];
		gts[0] = new GraphicLine(lowerHalf.getPoint(0), lowerHalf.getPoint(2), Color.black); //Left shin
		gts[1] = new GraphicLine(lowerHalf.getPoint(1), lowerHalf.getPoint(3), Color.black); //Right shin
		gts[2] = new GraphicLine(lowerHalf.getPoint(4), lowerHalf.getPoint(6), Color.black); //Left thigh
		gts[3] = new GraphicLine(lowerHalf.getPoint(5), lowerHalf.getPoint(7), Color.black); //Right thigh
		gts[4] = new GraphicTriangle(lowerHalf.getPoint(8), lowerHalf.getPoint(12), lowerHalf.getPoint(14), Color.darkGray); //Left front
		gts[5] = new GraphicTriangle(lowerHalf.getPoint(9), lowerHalf.getPoint(13), lowerHalf.getPoint(15), Color.darkGray); //Right front
		gts[6] = new GraphicTriangle(lowerHalf.getPoint(10), lowerHalf.getPoint(16), lowerHalf.getPoint(18), Color.darkGray); //Left back
		gts[7] = new GraphicTriangle(lowerHalf.getPoint(11), lowerHalf.getPoint(17), lowerHalf.getPoint(19), Color.darkGray); //Right back
		
		zol = new ZOrderedList(netwar.gui.HexViewer.getHexViewer().getTransform());
		for(int j = 0; j < 8; j++)
			zol.add(gts[j]);

		N_aryLink nls[] = new N_aryLink[6];
		leftFoot = new UnaryLink();
		rightFoot = new UnaryLink();
		nls[0] = new N_aryLink(2);
		nls[1] = new N_aryLink(2);
		nls[2] = new N_aryLink(3);
		nls[3] = new N_aryLink(3);
		nls[4] = new N_aryLink(2);
		nls[5] = new N_aryLink(2);
		leftFoot.addLink(nls[0], lowerHalf.getPoint(0), gts[0]); //left foot-shin
		rightFoot.addLink(nls[1], lowerHalf.getPoint(1), gts[1]); //right foot-shin
		nls[0].addLink(leftFoot, lowerHalf.getPoint(2), gts[0]); //left knee-shin
		nls[1].addLink(rightFoot, lowerHalf.getPoint(3), gts[1]); //right knee-shin
		nls[0].addLink(nls[2], lowerHalf.getPoint(4), gts[2]); //left knee-thigh
		nls[1].addLink(nls[3], lowerHalf.getPoint(5), gts[3]); //right knee-thigh
		nls[2].addLink(nls[0], lowerHalf.getPoint(6), gts[2]); //left hip-thigh
		nls[3].addLink(nls[1], lowerHalf.getPoint(7), gts[3]); //right hip-thigh
		nls[2].addLink(nls[4], lowerHalf.getPoint(8), gts[4]); //left hip-front
		nls[3].addLink(nls[4], lowerHalf.getPoint(9), gts[5]); //right hip-front
		nls[2].addLink(nls[5], lowerHalf.getPoint(10), gts[6]); //left hip-back
		nls[3].addLink(nls[5], lowerHalf.getPoint(11), gts[7]); //right hip-back
		nls[4].addLink(nls[2], lowerHalf.getPoint(12), gts[4]); //front tip-left
		nls[4].addLink(nls[3], lowerHalf.getPoint(13), gts[5]); //front tip-right
		nls[5].addLink(nls[2], lowerHalf.getPoint(18), gts[6]); //back tip-left
		nls[5].addLink(nls[3], lowerHalf.getPoint(19), gts[7]); //back tip-right
		
		upperHalf = new CoherentPointSet(10);
		upperHalf.add(new SelfConvertingPoint(7, 0, 0)); //0: Turret front
		upperHalf.add(new SelfConvertingPoint(0, 0, 5)); //1: Turret top
		upperHalf.add(new SelfConvertingPoint(-5, 0, 0)); //2: Turret back
		upperHalf.add(new SelfConvertingPoint(0, 5, 0)); //3: Turret left
		upperHalf.add(new SelfConvertingPoint(0, -5, 0)); //4: Turret right
		upperHalf.add(new SelfConvertingPoint(5, 5, 0)); //5: Left gun tip
		upperHalf.add(new SelfConvertingPoint(5, -5, 0)); //6: Right gun tip
		upperHalf.add(new SelfConvertingPoint(7f/2f, 5f/4f, 5f/4f)); //7: DELTA
		upperHalf.add(new SelfConvertingPoint(7f/4f, 5f/2f, 5f/4f)); //8: DELTA
		upperHalf.add(new SelfConvertingPoint(7f/4f, 5f/4f, 5f/2f)); //9: DELTA
		
		OrderedGraphicSet ogs = new OrderedGraphicSet(new GraphicTriangle(upperHalf.getPoint(0), upperHalf.getPoint(1), upperHalf.getPoint(3), myPlayer.getColor().darker()), 4);
		ogs.add(new GraphicLine(upperHalf.getPoint(7), upperHalf.getPoint(8), myPlayer.getColor().brighter()), false);
		ogs.add(new GraphicLine(upperHalf.getPoint(7), upperHalf.getPoint(9), myPlayer.getColor().brighter()), false);
		ogs.add(new GraphicLine(upperHalf.getPoint(8), upperHalf.getPoint(9), myPlayer.getColor().brighter()), false);
		
		zol.add(ogs);
		zol.add(new GraphicTriangle(upperHalf.getPoint(0), upperHalf.getPoint(1), upperHalf.getPoint(4), myPlayer.getColor()));
		zol.add(new GraphicTriangle(upperHalf.getPoint(2), upperHalf.getPoint(1), upperHalf.getPoint(3), myPlayer.getColor()));
		zol.add(new GraphicTriangle(upperHalf.getPoint(2), upperHalf.getPoint(1), upperHalf.getPoint(4), myPlayer.getColor()));
		zol.add(new GraphicTriangle(upperHalf.getPoint(2), upperHalf.getPoint(5), upperHalf.getPoint(3), Color.black));
		zol.add(new GraphicTriangle(upperHalf.getPoint(2), upperHalf.getPoint(6), upperHalf.getPoint(4), Color.black));
		
		lowerHalf.translate(vr[0]);
		lowerHalf.rotate(vr[0], Point3D.unitUp, i);

		upperHalf.translate((new Point3D(0,0,5)).doSum(lowerHalf.getPoint(14)));
		upperHalf.rotate(vr[0], Point3D.unitUp, i);
		vr[1].doRotate(Point3D.origin, Point3D.unitUp, i);
		vr[2].doRotate(Point3D.origin, Point3D.unitUp, i);
		vr[3].doRotate(Point3D.origin, Point3D.unitUp, i);
		vr[4].doRotate(Point3D.origin, Point3D.unitUp, i);
		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();
	}
	
	/** Requests that the GraphicThing(s) used by this object be added to GameViewer v.
	 * @param v The GameViewer which will be displaying the object.
	 */
	public void addTo(GameViewer v) {
		if(health > 0)
			v.add(zol);
	}
	public void killGraphics() {
		zol.kill();
	}
	
	/** Do the processing for a frame of animation while moving forward.  */
	protected void animateMove() {
		switch(frame) {
			case 12:
				lowerHalf.getPoint(3).doRotate(lowerHalf.getPoint(1), vr[2], 345);
				lowerHalf.getPoint(5).doRotate(lowerHalf.getPoint(7), vr[2], 15);
				leftFoot.rebind();
				break;
			case 9:
			case 5:
				lowerHalf.getPoint(3).doRotate(lowerHalf.getPoint(1), vr[2], 15);
				lowerHalf.getPoint(4).doRotate(lowerHalf.getPoint(6), vr[2], 330);
				lowerHalf.getPoint(5).doRotate(lowerHalf.getPoint(7), vr[2], 15);
				rightFoot.rebind();
				break;
			case 8:
			case 4:
				lowerHalf.getPoint(2).doRotate(lowerHalf.getPoint(0), vr[2], 15);
				lowerHalf.getPoint(3).doRotate(lowerHalf.getPoint(1), vr[2], 330);
				lowerHalf.getPoint(4).doRotate(lowerHalf.getPoint(6), vr[2], 15);
				leftFoot.rebind();
				break;
			case 11:
			case 7:
			case 3:
				lowerHalf.getPoint(2).doRotate(lowerHalf.getPoint(0), vr[2], 15);
				lowerHalf.getPoint(4).doRotate(lowerHalf.getPoint(6), vr[2], 15);
				lowerHalf.getPoint(5).doRotate(lowerHalf.getPoint(7), vr[2], 330);
				leftFoot.rebind();
				break;
			case 10:
			case 6:
			case 2:
				lowerHalf.getPoint(2).doRotate(lowerHalf.getPoint(0), vr[2], 330);
				lowerHalf.getPoint(3).doRotate(lowerHalf.getPoint(1), vr[2], 15);
				lowerHalf.getPoint(5).doRotate(lowerHalf.getPoint(7), vr[2], 15);
				rightFoot.rebind();
				break;
			case 1:
				lowerHalf.getPoint(2).doRotate(lowerHalf.getPoint(0), vr[2], 15);
				lowerHalf.getPoint(4).doRotate(lowerHalf.getPoint(6), vr[2], 345);
				rightFoot.rebind();
				break;
		}
		upperHalf.translate(new Point3D(0,0,10).doSum(lowerHalf.getPoint(14)).doDifference(upperHalf.getPoint(1)));
		vr[0].set(lowerHalf.getPoint(14).x, lowerHalf.getPoint(14).y, 0);
		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 left.  */
	protected void animateRotateLeft() {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品理论电影在线观看| 香蕉久久一区二区不卡无毒影院| 国产精品日韩精品欧美在线| 亚洲激情av在线| 黄网站免费久久| 欧美日韩一区不卡| 国产精品毛片无遮挡高清| 国产成人综合自拍| 日韩精品中午字幕| 午夜电影一区二区三区| 91在线视频官网| 日本一区二区三区四区| 日韩高清在线电影| 欧美日韩国产综合久久| 亚洲三级在线免费观看| 丁香激情综合五月| 精品福利二区三区| 蜜臀av一区二区| 欧美电影在线免费观看| 亚洲综合无码一区二区| 91丝袜高跟美女视频| 国产欧美日韩综合精品一区二区| 美女视频一区在线观看| 欧美久久高跟鞋激| 亚洲国产成人91porn| 在线视频国内自拍亚洲视频| 中文字幕一区二区三区视频| 国产精品 欧美精品| 久久久精品天堂| 国产精品一区二区x88av| 亚洲精品在线观看网站| 日本成人中文字幕在线视频| 91成人在线免费观看| 亚洲永久免费av| 欧美日韩一二三| 天天综合日日夜夜精品| 7777精品久久久大香线蕉| 日韩国产精品久久久久久亚洲| 欧美撒尿777hd撒尿| 亚洲国产日韩在线一区模特| 欧美在线播放高清精品| 视频一区二区中文字幕| 欧美一二三在线| 国产在线精品不卡| 国产精品久久久久久久久图文区| a在线欧美一区| 一级女性全黄久久生活片免费| 欧洲视频一区二区| 午夜成人在线视频| 亚洲精品一区二区三区四区高清| 国产麻豆91精品| 日韩一区欧美一区| 欧美三电影在线| 国内精品国产三级国产a久久| 欧美电影免费观看高清完整版在线 | 欧美亚洲国产怡红院影院| 亚洲综合网站在线观看| 91精品国产色综合久久ai换脸| 久久精品国产一区二区三区免费看| 欧美变态tickling挠脚心| 国产精品综合在线视频| 综合激情成人伊人| 777xxx欧美| 高清不卡一区二区在线| 亚洲永久免费视频| 欧美成人猛片aaaaaaa| 成人一区二区视频| 性欧美疯狂xxxxbbbb| 精品91自产拍在线观看一区| 成人a级免费电影| 无码av免费一区二区三区试看| 26uuuu精品一区二区| 91成人在线观看喷潮| 国产一区免费电影| 亚洲一区二区在线免费看| 精品理论电影在线观看| 欧美影片第一页| 国产精品综合视频| 偷偷要91色婷婷| 亚洲少妇最新在线视频| 精品理论电影在线| 欧美日韩国产中文| 91看片淫黄大片一级在线观看| 奇米亚洲午夜久久精品| 亚洲精品视频自拍| 国产日韩高清在线| 欧美大白屁股肥臀xxxxxx| 在线一区二区视频| 成人福利电影精品一区二区在线观看| 五月天丁香久久| 亚洲乱码一区二区三区在线观看| 久久午夜国产精品| 欧美一级在线视频| 欧美日韩你懂得| 在线观看91精品国产入口| 成人午夜av影视| 国产河南妇女毛片精品久久久| 日韩av高清在线观看| 亚洲成人免费看| 亚洲午夜视频在线观看| 亚洲人成小说网站色在线| 国产精品欧美极品| 国产亚洲精品福利| 精品1区2区在线观看| 日韩一区二区三| 日韩一级片网址| 91精品国产综合久久久蜜臀粉嫩| 欧洲中文字幕精品| 欧美午夜精品久久久久久超碰| 99re在线精品| 一本到不卡免费一区二区| av激情综合网| 97久久精品人人澡人人爽| 北条麻妃国产九九精品视频| 成人天堂资源www在线| 欧美日韩一级二级| 欧美精品在线观看一区二区| 欧美三区在线视频| 91精品欧美久久久久久动漫| 在线观看91精品国产麻豆| 91麻豆精品国产91久久久久久| 欧美丰满一区二区免费视频 | 国产在线精品免费| 国产一区二区电影| 成人免费看视频| 9i看片成人免费高清| www.色精品| 欧美在线一区二区| 欧美一区二区三区在| 欧美变态tickle挠乳网站| 国产欧美一区二区精品仙草咪| 国产目拍亚洲精品99久久精品| 中文字幕人成不卡一区| 亚洲香蕉伊在人在线观| 蜜桃精品视频在线| 国产精品资源在线| 一本色道久久综合亚洲aⅴ蜜桃 | 国产精品久久久久毛片软件| 国产精品久久久久久久岛一牛影视 | 亚洲精品国产无天堂网2021| 亚洲一线二线三线久久久| 日韩和欧美一区二区三区| 久久精品国产第一区二区三区| 国产一区二区毛片| 91香蕉视频mp4| 欧美狂野另类xxxxoooo| 久久久午夜精品| 夜夜爽夜夜爽精品视频| 极品少妇xxxx精品少妇偷拍| av不卡在线观看| 欧美一级爆毛片| 亚洲欧美日本在线| 美女视频一区二区| 色综合久久久久网| 精品av综合导航| 亚洲综合一二三区| 国产高清成人在线| 欧美日产在线观看| 国产精品第五页| 激情欧美一区二区| 欧美日韩在线播放三区| 久久影院视频免费| 午夜精品123| 91在线视频播放| 久久久久久日产精品| 亚洲一区二区av在线| 成人在线视频一区| 欧美成人一级视频| 亚洲福利一二三区| 91免费国产视频网站| 亚洲精品一区二区三区精华液| 亚洲综合色自拍一区| 成人一区二区三区| 久久日韩精品一区二区五区| 午夜欧美电影在线观看| 99久久99精品久久久久久| 欧美成人一区二区| 日韩精品乱码av一区二区| 色偷偷成人一区二区三区91| 久久免费电影网| 久久99国产精品免费网站| 555www色欧美视频| 亚洲一二三四区不卡| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 不卡的av网站| 久久精品无码一区二区三区| 蜜桃免费网站一区二区三区| 欧美日韩久久不卡| 亚洲gay无套男同| 欧美亚洲国产bt| 一区二区欧美精品| 欧洲精品在线观看| 亚洲午夜精品17c| 在线观看免费亚洲| 亚洲福中文字幕伊人影院| 欧美日韩五月天| 日韩精品电影在线观看| 91麻豆精品国产91久久久久久久久| 亚洲va天堂va国产va久| 欧美性生活大片视频|