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

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

?? beamsniper.java

?? 用java開發(fā)的一個實施策略游戲源碼 值得學(xué)習(xí)一下
?? 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 a laser sniper rifle.
 * It's firing range actually exceeds its vision range, so it works better if micro-managed.
 * Very slow fire / high damage makes it good against armoured units.
 */
public class BeamSniper extends netwar.game.Unit {
	private ZOrderedList zol;
	private UnaryLink leftFoot;
	private UnaryLink rightFoot;
	CoherentPointSet lowerHalf;
	CoherentPointSet upperHalf;
	int snipeAngle = 0;
	private static ColorSpectrum grayCS = new ColorSpectrum( 0, 99, 0, 99, 0, 99, 32, 255, 100);
	private static ColorSpectrum blackCS = new ColorSpectrum( 0,  0, 0,  0, 0,  0, 32, 255, 100);
	private MalleableColor gray;
	private MalleableColor black;
	private MalleableColor team;
	private MalleableColor darker;
	private MalleableColor brighter;
	
	/** Creates a new instance of Beam Sniper */
	public BeamSniper() {
	}

	protected void createVectors()
	{
		gray = new MalleableColor(grayCS);
		black = new MalleableColor(blackCS);
		team = new MalleableColor(myPlayer.getTeamFadingColorSpectrum());
		darker = new MalleableColor(myPlayer.getTeamFadingDarkColorSpectrum());
		brighter = new MalleableColor(myPlayer.getTeamFadingBrightColorSpectrum());
		
		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), black); //Left shin
		gts[1] = new GraphicLine(lowerHalf.getPoint(1), lowerHalf.getPoint(3), black); //Right shin
		gts[2] = new GraphicLine(lowerHalf.getPoint(4), lowerHalf.getPoint(6), black); //Left thigh
		gts[3] = new GraphicLine(lowerHalf.getPoint(5), lowerHalf.getPoint(7), black); //Right thigh
		gts[4] = new GraphicTriangle(lowerHalf.getPoint(8), lowerHalf.getPoint(12), lowerHalf.getPoint(14), gray); //Left front
		gts[5] = new GraphicTriangle(lowerHalf.getPoint(9), lowerHalf.getPoint(13), lowerHalf.getPoint(15), gray); //Right front
		gts[6] = new GraphicTriangle(lowerHalf.getPoint(10), lowerHalf.getPoint(16), lowerHalf.getPoint(18), gray); //Left back
		gts[7] = new GraphicTriangle(lowerHalf.getPoint(11), lowerHalf.getPoint(17), lowerHalf.getPoint(19), gray); //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(14);
		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(7f/2f, -5f/4f, 5f/4f)); //5: DELTA
		upperHalf.add(new SelfConvertingPoint(7f/4f, -5f/2f, 5f/4f)); //6: DELTA
		upperHalf.add(new SelfConvertingPoint(7f/4f, -5f/4f, 5f/2f)); //7: DELTA
		upperHalf.add(new SelfConvertingPoint(0, 2.5f, 2.5f)); //8: Left front mount
		upperHalf.add(new SelfConvertingPoint(-2.5f, 2.5f, 0)); //9: Left rear mount
		upperHalf.add(new SelfConvertingPoint(0, -2.5f, 2.5f)); //10: Right front mount
		upperHalf.add(new SelfConvertingPoint(-2.5f, -2.5f, 0)); //11: Right rear mount
		upperHalf.add(new SelfConvertingPoint(0, 0, 7)); //12: Gun pivot
		upperHalf.add(new SelfConvertingPoint(5, 0, 7)); //13: Gun tip
		
		OrderedGraphicSet ogs = new OrderedGraphicSet(new GraphicTriangle(upperHalf.getPoint(0), upperHalf.getPoint(1), upperHalf.getPoint(4), darker), 4);
		ogs.add(new GraphicLine(upperHalf.getPoint(5), upperHalf.getPoint(6), brighter), false);
		ogs.add(new GraphicLine(upperHalf.getPoint(5), upperHalf.getPoint(7), brighter), false);
		ogs.add(new GraphicLine(upperHalf.getPoint(6), upperHalf.getPoint(7), brighter), false);
		
		zol.add(ogs);
		zol.add(new GraphicTriangle(upperHalf.getPoint(0), upperHalf.getPoint(1), upperHalf.getPoint(3), team));
		zol.add(new GraphicTriangle(upperHalf.getPoint(2), upperHalf.getPoint(1), upperHalf.getPoint(3), team));
		zol.add(new GraphicTriangle(upperHalf.getPoint(2), upperHalf.getPoint(1), upperHalf.getPoint(4), team));
		zol.add(new GraphicTriangle(upperHalf.getPoint(8), upperHalf.getPoint(9), upperHalf.getPoint(12), black));
		zol.add(new GraphicTriangle(upperHalf.getPoint(10), upperHalf.getPoint(11), upperHalf.getPoint(12), black));
		zol.add(new GraphicLine(upperHalf.getPoint(12), upperHalf.getPoint(13), 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();
	}
	
	public void addTo(GameViewer v) {
		if(health > 0)
			v.add(zol);
	}

	public void killGraphics() {
		zol.kill();
	}
	
	protected void animateMove() {
		switch(frame) {
			case 36:
			case 35:
			case 34:
				lowerHalf.getPoint(3).doRotate(lowerHalf.getPoint(1), vr[2], 355);
				lowerHalf.getPoint(5).doRotate(lowerHalf.getPoint(7), vr[2], 5);
				leftFoot.rebind();
				break;
			case 27:
			case 15:
			case 26:
			case 14:
			case 25:
			case 13:
				lowerHalf.getPoint(3).doRotate(lowerHalf.getPoint(1), vr[2], 5);
				lowerHalf.getPoint(4).doRotate(lowerHalf.getPoint(6), vr[2], 350);
				lowerHalf.getPoint(5).doRotate(lowerHalf.getPoint(7), vr[2], 5);
				rightFoot.rebind();
				break;
			case 24:
			case 12:
			case 23:
			case 11:
			case 22:
			case 10:
				lowerHalf.getPoint(2).doRotate(lowerHalf.getPoint(0), vr[2], 5);
				lowerHalf.getPoint(3).doRotate(lowerHalf.getPoint(1), vr[2], 350);
				lowerHalf.getPoint(4).doRotate(lowerHalf.getPoint(6), vr[2], 5);
				leftFoot.rebind();
				break;
			case 33:
			case 21:
			case 9:
			case 32:
			case 20:
			case 8:
			case 31:
			case 19:
			case 7:
				lowerHalf.getPoint(2).doRotate(lowerHalf.getPoint(0), vr[2], 5);
				lowerHalf.getPoint(4).doRotate(lowerHalf.getPoint(6), vr[2], 5);
				lowerHalf.getPoint(5).doRotate(lowerHalf.getPoint(7), vr[2], 350);
				leftFoot.rebind();
				break;
			case 30:
			case 18:
			case 6:
			case 29:
			case 17:
			case 5:
			case 28:
			case 16:
			case 4:
				lowerHalf.getPoint(2).doRotate(lowerHalf.getPoint(0), vr[2], 350);
				lowerHalf.getPoint(3).doRotate(lowerHalf.getPoint(1), vr[2], 5);
				lowerHalf.getPoint(5).doRotate(lowerHalf.getPoint(7), vr[2], 5);
				rightFoot.rebind();
				break;
			case 3:
			case 2:
			case 1:
				lowerHalf.getPoint(2).doRotate(lowerHalf.getPoint(0), vr[2], 5);
				lowerHalf.getPoint(4).doRotate(lowerHalf.getPoint(6), vr[2], 355);
				rightFoot.rebind();
				break;
		}
		upperHalf.translate(new Point3D(0,0,10).doSum(lowerHalf.getPoint(14)).doDifference(upperHalf.getPoint(1)));

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲另类色综合网站| 色8久久人人97超碰香蕉987| 琪琪久久久久日韩精品| 日韩毛片一二三区| 久久精品视频一区二区三区| 欧美成人免费网站| 精品成人在线观看| 久久久久亚洲综合| 欧美激情中文字幕| 国产偷v国产偷v亚洲高清| 久久久久久麻豆| 久久一夜天堂av一区二区三区| 91麻豆精品国产91久久久久久| 欧美亚洲免费在线一区| 欧美伊人久久大香线蕉综合69 | 亚洲欧美怡红院| 亚洲午夜精品网| 国产成人亚洲综合a∨猫咪| 色系网站成人免费| 国产三级精品视频| 亚洲va国产va欧美va观看| 国产精品白丝jk白祙喷水网站| 972aa.com艺术欧美| 精品国产1区二区| 日本中文一区二区三区| 99久久精品国产一区| 国产精品色眯眯| 国产传媒欧美日韩成人| 制服丝袜国产精品| 一区二区三区国产精华| 成人午夜精品在线| 国产三级欧美三级| 成人综合婷婷国产精品久久蜜臀| 欧美一区二区二区| 日本aⅴ免费视频一区二区三区| 欧美日韩一本到| 日韩综合小视频| 欧美巨大另类极品videosbest | 久久精品视频免费| 国产成人免费在线视频| 欧美日韩午夜精品| 成人蜜臀av电影| 偷拍与自拍一区| 亚洲欧美日韩中文字幕一区二区三区 | 欧美一级二级在线观看| av爱爱亚洲一区| 极品瑜伽女神91| 亚洲欧美视频在线观看| 91精品在线免费| eeuss鲁片一区二区三区在线观看| 亚洲精品国产a久久久久久| 欧美一区二区在线免费观看| 国产一区二区福利| 日本va欧美va欧美va精品| 国产精品美女久久久久久久久久久| 一本色道久久综合亚洲91| 麻豆freexxxx性91精品| 亚洲黄色性网站| 国产精品全国免费观看高清| 51午夜精品国产| 一本久久精品一区二区| 成人午夜在线免费| 久久精品国产精品亚洲综合| 一区二区三区在线视频播放| 国产亚洲成年网址在线观看| 91精品综合久久久久久| 一本高清dvd不卡在线观看| 成人免费视频视频在线观看免费| 日韩精品91亚洲二区在线观看| 一区二区三区在线观看国产| 亚洲国产精品t66y| 国产嫩草影院久久久久| 久久久不卡网国产精品一区| 欧美一级高清片| 精品国产髙清在线看国产毛片| 欧美日韩一级二级三级| 欧美日韩一区二区三区不卡| 91电影在线观看| 欧美人妖巨大在线| 91精品久久久久久蜜臀| 欧美一区二区不卡视频| 欧美成人性福生活免费看| 久久精品男人的天堂| 国产欧美中文在线| 亚洲欧美中日韩| 亚洲女女做受ⅹxx高潮| 亚洲中国最大av网站| 美女一区二区三区| 国产成人av福利| 在线观看免费视频综合| 日韩一区二区电影| 国产精品不卡在线| 婷婷综合久久一区二区三区| 极品销魂美女一区二区三区| 成人小视频免费观看| 欧美人体做爰大胆视频| 久久丝袜美腿综合| 一区二区三区高清在线| 久久99九九99精品| 欧美三级在线看| 中文一区二区完整视频在线观看| 亚洲图片自拍偷拍| 国产寡妇亲子伦一区二区| 欧美亚洲高清一区二区三区不卡| 91精品欧美综合在线观看最新| 国产精品久久久久久久久晋中 | 国产麻豆视频精品| 欧美妇女性影城| 一区二区三区欧美视频| 国产盗摄一区二区| 日韩美女在线视频| 日日欢夜夜爽一区| 欧美日韩视频在线观看一区二区三区| 久久久不卡网国产精品二区| 免费人成黄页网站在线一区二区| 91影院在线观看| 亚洲欧美一区二区在线观看| 国产.欧美.日韩| 国产亚洲欧美激情| 成人久久视频在线观看| 国产午夜精品一区二区| 国产一区二区视频在线播放| 日韩欧美你懂的| 久久精品99国产精品日本| 欧美一区二区精品在线| 精品在线免费视频| 久久蜜桃av一区二区天堂| 国产精品资源在线看| 国产欧美日韩在线视频| 91丝袜国产在线播放| 一区二区三区在线观看国产| 欧美日韩电影在线播放| 美女网站色91| 国产精品日产欧美久久久久| 99国产精品久久久久久久久久 | 亚洲一区二区视频| 欧美一区二区三区日韩| 国产成人8x视频一区二区| 亚洲欧美在线观看| 日韩精品一区二区三区在线播放| 精品一区二区三区久久久| 专区另类欧美日韩| 日韩一区二区三区视频| 99久久精品久久久久久清纯| 日韩精品一级中文字幕精品视频免费观看| 91精品国产欧美一区二区18 | 亚洲伦理在线免费看| 日韩午夜av电影| 色综合亚洲欧洲| 国产精品一区二区不卡| 日韩影院精彩在线| 亚洲色图视频网站| 国产日韩在线不卡| 欧美精品1区2区3区| 91国产福利在线| 99国产精品一区| 成人午夜私人影院| 丰满亚洲少妇av| 国产一区在线不卡| 久久精品国产77777蜜臀| 亚洲无人区一区| 亚洲伊人伊色伊影伊综合网| 中文字幕国产精品一区二区| 26uuu色噜噜精品一区二区| 欧美电影免费观看完整版| 欧美一区二区视频在线观看2022| 色综合一个色综合| 色婷婷综合久久久中文一区二区| 成人性生交大片| 日本乱人伦一区| 欧美日韩一区二区三区不卡| 6080国产精品一区二区| 91麻豆精品国产91久久久久久久久| 欧美三级日韩三级国产三级| 欧美视频在线观看一区| 这里只有精品免费| 精品国产一区二区精华| 久久精品日产第一区二区三区高清版 | 亚洲精品成人天堂一二三| 天天综合天天做天天综合| 美女在线观看视频一区二区| 国产真实乱对白精彩久久| 成人免费的视频| 欧美日本免费一区二区三区| 欧美精品一区二区三区久久久| 国产日韩欧美高清在线| 亚洲一区二区高清| 国产乱色国产精品免费视频| 91福利在线导航| 久久久久久久久97黄色工厂| 亚洲欧美韩国综合色| 久久99精品久久久久婷婷| 色欧美片视频在线观看| 欧美v日韩v国产v| 亚洲精品乱码久久久久久黑人 | 欧美午夜精品一区二区三区| 免费观看一级欧美片| 夜夜嗨av一区二区三区中文字幕| 亚洲女同一区二区| 欧美在线制服丝袜|