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

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

?? stealthfighter.java

?? 用java開發的一個實施策略游戲源碼 值得學習一下
?? JAVA
字號:
/*
	Netwar
	Copyright (C) 2002  Daniel Grund, Kyle Kakligian, Jason Komutrattananon, & Brian Hibler.

	This file is part of Netwar.

	Netwar is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	Netwar is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with Netwar; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package netwar.game.unit;
import netwar.game.*;
import netwar.utils.*;
import netwar.utils.vectorgraphics.*;
import netwar.game.projectile.BallisticShell;
import java.awt.*;

/** Temporary Unit class. This will be removed in Iteration 2, when the real Units are created.
 * This is a moderate speed, fragile, long range combatant.
 * It has low armor, and uses a slow fire weapon (which is good against high armor targets).
 * @author Group N2 - Project Netwar
 * @author Daniel Grund
 */
public class StealthFighter extends Unit {
	OrderedGraphicSet ogs;
	/** Constuctor. This Unit has no special parameters. */
	public StealthFighter(){
	}
	/** Unit default2 requires 10 frames to move forward one hex.
	 * @return 10
	 */
	protected int framesToMove(){
		return 10; //return the number of frames needed to move one hex.
	}
	/** Unit default2 requires 6 frames to rotate one hex-side.
	 * @return 6
	 */
	protected int framesToRotate(){
		return 6; //return the number of frames needed to rotate one hex-side.
	}
	/** Unit default2 requires 10 frames to be created.
	 * @return 10
	 */
	protected int framesToMake(){
		return 20;
	}
	/** Unit default2 uses 10 frames to display a death scene.
	 * @return 10
	 */
	protected int framesToDie(){
		return 10;
	}
	protected void createVectors()
	{
		int i = f * 60 + 30;
		vr = new Point3D[1];

		vr[0] = Hex.getMapPoint(x,y);
		ogs = new OrderedGraphicSet(new GraphicTriangle(new Point3D(5, 0, 0),
								     new Point3D(-3, -4, 0),
								     new Point3D(-3, 4, 0),
                                                                     new Color(0,0,0,48)),
									4);
                Color c = new Color(myPlayer.getColor().getRed(), myPlayer.getColor().getGreen(), myPlayer.getColor().getBlue(), 48);
		ogs.add(new GraphicTriangle(new Point3D(5, 0, 0),
					     new Point3D(-3, 0, 0),
					     new Point3D(-3, 0, 5),
					     myPlayer.getColor()),
					     false);
		ogs.add(new GraphicLine(new Point3D(5,0,0), new Point3D(-3, 0, 5), myPlayer.getColor()), false);
		ogs.add(new GraphicLine(new Point3D(-3,0,0), new Point3D(-3, 0, 5), myPlayer.getColor()), false);
		ogs.translate(vr[0]);
		ogs.rotate(vr[0], Point3D.unitUp, i);
//		netwar.gui.HexViewer.getHexViewer().add(ogs);
	}
	/** Unit default 2 is drawn as two triangles.
	 * A black triangle is drawn on ground level.
	 * A team-color triangle is drawn like a fin, extending up from the black triangle.
	 */
	public void draw(GameViewer v) {
		ogs.draw(v);
	}
	/** 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) {
		v.add(ogs);
	}
	public void killGraphics() {
		ogs.kill();
	}
	
	/** Unit default2 moves forward by sliding. No articulate animation is used. */
	protected void animateMove(){
		//Update the necessary vectors to move forward during one frame.
		int i = Trig.normalize(f * 60 + 30);
		Point3D pt = new Point3D(Trig.cos(i) * 2, Trig.sin(i) * 2,0);
		vr[0].doSum(pt);
		ogs.translate(pt);
	}			
	/** Unit default2 rotates left by sliding. No articulate animation is used. */
	protected void animateRotateLeft(){
		ogs.rotate(vr[0], Point3D.unitUp, 10);
	}
	/** Unit default2 rotates right by sliding. No articulate animation is used. */
	protected void animateRotateRight(){
		ogs.rotate(vr[0], Point3D.unitUp, 350);
	}
	/** Unit default2 is created by the fin extending up from the black triangle. */
	protected void animateMake() {
//		vr[5].z += 0.5f;
	}
	/** Unit default2 dies by shrinking into a point. */
	protected void animateDie() {
/*		int i;
		for(i = 1; i < 6; i++)
		{
			vr[i].x /= 2f;
			vr[i].y /= 2f;
		}
		vr[5].z -= 0.5f;
*/
		frame--;
		if(frame == 0)
		{
			ogs.kill();
			remove();
			Hex.getHex(x,y).leave(this);
			Hex.getHex(resX,resY).unreserve();
		}
	}

//	protected void think() { //Default is ok for this one.

	
	/** Unit default2 is 5 units tall.
	 * @return 5
	 */
	public float getHeight() {
		return 5.0f;
	}
	/** Unit default2 is 5 units wide.
	 * @return 5
	 */
	public float getWidth() {
		return 5.0f;
	}

	/** Unit default2 has a weapon range of 200 units, or 10 hexes.
	 * @return 40000
	 */
	public float weaponRangeSquared(){
		return 40000.0f;
	}
	/** Unit default2 pursues to a range of 8 hexes.
	 * @return 8
	 */
	public int followRange(){
		return 8;
	}

	/** Unit default2 must wait 20 frames between shots.
	 * @return 20
	 */
	public int weaponDelay(){
		return 20;
	}

	/** Unit default2 fires a ProjectileDefault2.
	 * Projectile default2 is an arcing shot which can only damage its intended target.
	 * It explodes when it hits the ground.
	 * <BR> Initial location = the upper tip of the fin.
	 * <BR> Initial velocity = 10 units horizontally toward the target, plus a vertical component determined by the range.
	 * <BR> Base damage = 25
	 * <BR> Radius of explosion = 10 units.
	 * <BR> Life of projectile = 50 cycles.
	 */
	protected boolean fire() {
		Point3D pt = new Point3D(targetSSMDS.getVector(this));
		float up = (pt.getLength() - 20f) / 20f;
		pt.Normalize();
		pt.doProduct(10);
		pt.z += up;
		
		Projectile.newProjectile(new BallisticShell(), vr[0].getSum(new Point3D(0,0,3.125)), pt, 25, 100, 50, this, target);
		return true;

	}
	/** Unit default2 has a maximum of 120 health.
	 * @return 120
	 */
	protected int maxHealth() {
		return 120;
	}
	/** Unit default2 has an armor rating of 3
	 * @return 3
	 */
	protected int armor() {
		return 3;
	}
	/** Returns the cost to build this object.
	 * Non-buildable objects have a cost of zero.
	 * @return The cost of the object.
	 */
	public int cost() {
		return 150;
	}

}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99在线精品一区二区三区| 天天影视涩香欲综合网| 精品国产麻豆免费人成网站| 在线精品视频一区二区三四| 成人午夜在线免费| 成人一道本在线| 粉嫩一区二区三区在线看| 国产一区二区在线影院| 久久99国产精品尤物| 国内精品久久久久影院薰衣草| 麻豆视频一区二区| 狠狠狠色丁香婷婷综合激情 | 国产乱国产乱300精品| 麻豆久久一区二区| 国产精品亚洲第一区在线暖暖韩国| 蜜桃视频在线观看一区二区| 美国毛片一区二区三区| 国产在线播精品第三| 高清免费成人av| 波多野结衣亚洲| 色哟哟一区二区在线观看| 欧美主播一区二区三区美女| 欧美一区二区三区小说| 精品久久久久香蕉网| 中文字幕国产一区| 一区二区视频免费在线观看| 日韩av一区二区在线影视| 国产一区美女在线| 91啪九色porn原创视频在线观看| 色一情一伦一子一伦一区| 欧美精品一二三| 国产欧美精品一区aⅴ影院| 成人欧美一区二区三区1314| 亚洲成人你懂的| 国产精品一级在线| 欧美天堂一区二区三区| 久久综合色婷婷| 一区二区成人在线观看| 精品一区二区三区免费观看| 99九九99九九九视频精品| 51精品秘密在线观看| 久久婷婷国产综合国色天香| 一区二区久久久| 国产一区二区精品久久99| 91久久精品一区二区三区| 日韩你懂的在线观看| 亚洲欧美激情小说另类| 韩日av一区二区| 欧美亚洲国产一区二区三区va | 成人欧美一区二区三区黑人麻豆| 亚洲国产精品久久艾草纯爱| 国产高清不卡二三区| 欧美日本不卡视频| 综合自拍亚洲综合图不卡区| 免费高清视频精品| 色婷婷综合久久久中文字幕| 久久久亚洲欧洲日产国码αv| 亚洲国产精品视频| 97超碰欧美中文字幕| 精品国产区一区| 秋霞成人午夜伦在线观看| 色婷婷综合激情| 一区在线观看免费| 国产不卡视频在线播放| 日韩免费观看高清完整版在线观看| 一区二区三区在线影院| 99国产精品久久| 亚洲视频综合在线| 成人免费高清视频在线观看| 久久综合色之久久综合| 久久精品国产999大香线蕉| 91精品啪在线观看国产60岁| 亚洲成人中文在线| 欧美丝袜丝交足nylons图片| 有坂深雪av一区二区精品| bt7086福利一区国产| 国产精品国产精品国产专区不蜜| 国产一区视频网站| 久久久久久97三级| 国产成人亚洲综合a∨婷婷图片| 日韩女优av电影| 国产乱一区二区| 国产视频一区二区在线| 丰满白嫩尤物一区二区| 国产精品久久久久久久久久久免费看 | 日本不卡高清视频| 4438x成人网最大色成网站| 偷窥国产亚洲免费视频| 欧美日韩视频在线第一区 | 亚洲精品免费在线播放| 91久久精品一区二区| 亚洲va欧美va人人爽午夜| 欧美人与禽zozo性伦| 奇米在线7777在线精品| 久久久亚洲午夜电影| av亚洲产国偷v产偷v自拍| 亚洲三级免费观看| 欧美喷水一区二区| 久久99久久久久久久久久久| 久久久久久久久99精品| www.色精品| 性做久久久久久久免费看| 日韩视频在线你懂得| 国产精品一级二级三级| 亚洲精品一二三| 日韩一级黄色大片| 北条麻妃国产九九精品视频| 一区二区欧美在线观看| 日韩精品一区二区三区中文不卡| 国产成人一级电影| 一区二区三区四区高清精品免费观看| 欧美人动与zoxxxx乱| 国产一区二区在线影院| 亚洲午夜视频在线观看| 久久亚洲综合色| 在线免费观看日韩欧美| 国模套图日韩精品一区二区 | 欧美精品一二三四| 国产成人aaa| 日日夜夜精品视频天天综合网| 国产欧美一区二区三区沐欲| 欧美日韩1234| av网站一区二区三区| 美女被吸乳得到大胸91| 亚洲午夜精品17c| 国产精品久久久久久一区二区三区 | 国产精品一二三区| 青青草国产成人99久久| 亚洲欧美一区二区在线观看| 欧美变态口味重另类| 色综合网色综合| 成人综合激情网| 韩国中文字幕2020精品| 日韩激情在线观看| 亚洲免费色视频| 国产精品三级在线观看| 精品国产电影一区二区 | 日韩av午夜在线观看| 一色桃子久久精品亚洲| 久久久精品人体av艺术| 日韩欧美电影一区| 91精品啪在线观看国产60岁| 欧美伊人久久久久久久久影院| 国产成人综合视频| 国产一区二区伦理片| 日韩vs国产vs欧美| 亚洲第一精品在线| 亚洲高清视频的网址| 一区二区三区欧美久久| 亚洲精品久久久久久国产精华液| 中文字幕不卡的av| 国产精品五月天| 国产精品视频第一区| 中文字幕免费不卡| 国产精品久久夜| 综合色中文字幕| 亚洲免费伊人电影| 亚洲综合无码一区二区| 亚洲国产一区二区三区青草影视| 亚洲精品欧美在线| 一区二区三区欧美久久| 亚洲综合色区另类av| 亚洲最色的网站| 亚洲va韩国va欧美va| 丝袜亚洲另类丝袜在线| 日韩va欧美va亚洲va久久| 麻豆91精品91久久久的内涵| 精品在线观看免费| 国产精品一区一区三区| 成人午夜免费视频| 97久久超碰国产精品| 在线视频一区二区三区| 欧美性感一类影片在线播放| 欧美年轻男男videosbes| 日韩丝袜美女视频| 日本一区二区三区四区| 亚洲三级在线看| 午夜a成v人精品| 国内偷窥港台综合视频在线播放| 国产v日产∨综合v精品视频| 91猫先生在线| 538在线一区二区精品国产| 精品久久五月天| 成人欧美一区二区三区黑人麻豆| 亚洲综合小说图片| 国产资源精品在线观看| 91在线国内视频| 欧美一级欧美三级在线观看| 久久久综合视频| 亚洲资源在线观看| 精品一区二区三区影院在线午夜| 成人a免费在线看| 91精品国产欧美一区二区18| 国产亚洲精品超碰| 亚洲电影中文字幕在线观看| 欧美日韩性生活| 亚洲国产高清不卡| 日韩极品在线观看| 91丨porny丨首页| 日韩精品专区在线影院观看 |