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

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

?? projectile.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;
import netwar.utils.*;
import netwar.utils.vectorgraphics.*;

/** Abstract class representing one shot fired from some weapon.
 * @author Group N2 - Project Netwar
 * @author Daniel Grund
 */
public abstract class Projectile {
	/** The game-space location of the center of the projectile. */
	protected Point3D center;
	/** The velocity of the projectile, in game-space units per time-step */
	protected Point3D velocity;
	/** The object that fired this shot (in case it is relevant) */
	protected GameObject maker;
	/** The object that the shot was intended to hit (in case it is relevant) */
	protected GameObject enemy;
	/** Graphical representation */
	protected netwar.utils.vectorgraphics.GraphicThing appearance;
	/** The number of frames remaining before this projectile must cease existing (it may cease before then) */
	protected int life;
	/** The amount of damage the shot will deal if it hits something. */
	protected int damage;
	/** The square of the radius of explosion for this shot. */
	protected int radiusSquared;
	/** The vector containing all currently existing Projectiles. */
	static protected Vector Projectiles = new LVector();
	/** This method initializes a Projectile.
	 * This performs the following processes:
	 * <BR> Initializes the center, velocity, damage, radiusSquared, life, maker, and enemy fields.
	 * <BR> Adds the Projectile into the Vector.
	 * @param add The Projectile to incorporate into the game.
	 * @param where The initial value of center.
	 * @param going The initial value of velocity.
	 * @param power The initial value of damage.
	 * @param rad2 The initial value of radiusSquared.
	 * @param duration The initial value of life.
	 * @param origin The initial value of maker.
	 * @param target The initial value of enemy.
	 */
	public static void newProjectile(Projectile add, Point3D where, Point3D going, int power, int rad2, int duration, GameObject origin, GameObject target) {
		add.center = new Point3D(where);
		add.velocity = new Point3D(going);
		add.damage = power;
		add.radiusSquared = rad2;
		add.life = duration;
		add.maker = origin;
		add.enemy = target;

		add.makeGraphics();
		netwar.gui.HexViewer.getHexViewer().add(add.appearance);
		
		Projectiles.append(add);
	}
	/** Make the GraphicThing appearance. */
	protected abstract void makeGraphics();
	
	/** Calls update() on all Projectiles in the Vector. */
	public static void UpdateAll() {
		Projectiles.goFirst();
		while(Projectiles.isInList()) {
			if(((Projectile)Projectiles.get()).basicUpdate())
				((Projectile)Projectiles.get()).Update();
			Projectiles.goNext();
		}		
	}
 
	/** Performs functions which will be needed by most Projectiles during Update().
	 * Specifically, it decrements life. If life reaches zero, it calls
	 * Explode() if mustExplode() returns true, Fizzle() if mustExplode() returns false.
	 * Then it returns false. If life did not reach zero, it returns true.
	 */
	protected boolean basicUpdate() {
		life--;
		if(life == 0){
			if(mustExplode())
				Explode();
			else
				Fizzle();
		}
		return (life > 0);
	}
	/** Function to perform the processing needed during a single time-step. */
	protected abstract void Update();
	/** Draws all projectiles in the game onto GameViewer v 
	 * @param v The GameViewer seeking to display all the Projectiles.
	 */
	public static void DrawAll(GameViewer v) {
		Projectiles.goFirst();
		while(Projectiles.isInList()) {
			//if(((Projectile)Projectiles.get()).center is on/near the screen))
			((Projectile)Projectiles.get()).draw(v);
			Projectiles.goNext();
		}		
	}
	/** Displays this projectile on GameViewer v.
	 * @param v The GameViewer seeking to display this Projectile.
	 */
	public void draw(GameViewer v) {
		appearance.draw(v);
	}
    
	/** Return true iff it should detonate when it's life runs out.
	 * @return true if this should not just Fizzle() when life runs out.
	 */
	protected abstract boolean mustExplode();
    
	/** Deals damage to nearby GameObjects, makes flashy graphics, and calls Fizzle(). */
	protected abstract void Explode();
	/** Removes this from the game */
	protected void Fizzle() {
		appearance.kill();
		Projectiles.goFirst();
		while(Projectiles.get() != this)
			Projectiles.goNext();
		Projectiles.remove();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久岛一牛影视 | 国产精品―色哟哟| 亚洲精品中文字幕乱码三区| 日韩成人午夜电影| 91在线国产福利| 26uuu亚洲综合色欧美 | 国产福利视频一区二区三区| 色94色欧美sute亚洲线路二| 精品久久国产老人久久综合| 一区二区在线观看免费视频播放| 久久精品国产99| 在线看不卡av| 亚洲欧洲日韩av| 国产激情精品久久久第一区二区| 欧美精品乱人伦久久久久久| 日韩伦理免费电影| 丁香另类激情小说| 精品国产一区久久| 免费欧美高清视频| 欧美日韩小视频| 亚洲欧美视频在线观看| 国产99精品在线观看| 精品免费日韩av| 日韩专区在线视频| 91黄色免费版| 亚洲欧美国产77777| 国产成人aaa| 久久精品视频在线看| 久久av老司机精品网站导航| 91精品国产综合久久精品麻豆| 亚洲美女在线国产| 色综合 综合色| 亚洲免费三区一区二区| 色婷婷久久久亚洲一区二区三区| 国产精品电影院| 97国产精品videossex| 国产精品不卡视频| 99国产精品久久久久久久久久 | 国产乱淫av一区二区三区 | 亚瑟在线精品视频| 欧美日韩视频在线观看一区二区三区 | 亚洲免费观看高清| 在线观看免费一区| 亚洲高清在线精品| 欧美日韩国产美| 日日夜夜精品视频免费| 日韩一区二区中文字幕| 久久99精品国产| 欧美精品免费视频| 久久超碰97中文字幕| 日韩精品自拍偷拍| 国产一区二区影院| 亚洲国产成人在线| 91在线观看免费视频| 一区二区三区不卡视频在线观看 | 91丨porny丨国产入口| 亚洲女同女同女同女同女同69| 91免费视频网址| 国产真实乱偷精品视频免| 亚洲精品在线一区二区| 国产精品亚洲专一区二区三区| 国产精品毛片久久久久久久| 日本久久一区二区三区| 天天亚洲美女在线视频| 久久久精品国产免大香伊| av在线这里只有精品| 亚洲图片有声小说| xf在线a精品一区二区视频网站| 成人精品一区二区三区中文字幕 | 99久久国产免费看| 舔着乳尖日韩一区| 亚洲国产成人一区二区三区| 欧美欧美欧美欧美首页| 国产成人精品午夜视频免费| 亚洲一区二区三区四区在线免费观看| 91精品国产综合久久精品麻豆| 国产jizzjizz一区二区| 午夜一区二区三区在线观看| 久久久久成人黄色影片| 欧美中文字幕一区二区三区亚洲 | 亚洲成av人片www| 久久久久国产精品麻豆ai换脸| 91黄色激情网站| 国产不卡视频在线观看| 日韩主播视频在线| 亚洲欧美偷拍卡通变态| 久久综合丝袜日本网| 欧美午夜精品一区二区三区| 国产乱人伦精品一区二区在线观看| 亚洲女与黑人做爰| 欧美高清在线一区二区| 日韩欧美国产三级电影视频| 91香蕉视频mp4| 丁香五精品蜜臀久久久久99网站| 日韩一区精品字幕| 亚洲精品自拍动漫在线| 日本一区二区三区四区在线视频| 欧美另类久久久品| 日本精品一区二区三区四区的功能| 国产寡妇亲子伦一区二区| 日精品一区二区| 亚洲成人黄色小说| 亚洲综合免费观看高清完整版| 国产精品欧美久久久久一区二区| 日韩视频一区在线观看| 欧美日韩国产成人在线91| 99久久精品国产观看| 成人动漫一区二区在线| 国产成人av电影在线观看| 久久国产乱子精品免费女| 青青草伊人久久| 日韩不卡一区二区三区| 亚洲第一福利一区| 亚洲成人av一区| 亚洲午夜免费电影| 亚洲成人中文在线| 亚洲成a人片综合在线| 亚洲成在线观看| 亚洲123区在线观看| 午夜精品久久久久久久蜜桃app| 亚洲自拍偷拍av| 一区二区三区**美女毛片| 亚洲欧美日韩精品久久久久| 自拍偷拍亚洲激情| 亚洲老妇xxxxxx| 亚洲成人av电影在线| 日本亚洲视频在线| 精品一区二区三区香蕉蜜桃| 国产精品自拍网站| 99久久精品国产网站| 一本色道a无线码一区v| 欧美午夜精品一区二区蜜桃| 欧美日韩成人综合在线一区二区| 在线成人av网站| 欧美va在线播放| 国产三级欧美三级日产三级99| 国产免费久久精品| 亚洲视频在线一区| 亚洲成人激情av| 久久国产精品一区二区| 不卡电影免费在线播放一区| 91国模大尺度私拍在线视频| 欧美日本不卡视频| 精品国产一区二区三区久久影院 | 麻豆成人久久精品二区三区小说| 裸体歌舞表演一区二区| 国产宾馆实践打屁股91| 91国内精品野花午夜精品| 日韩一区二区不卡| 亚洲国产精品99久久久久久久久| 亚洲欧洲av另类| 日本欧美在线观看| 成人av综合一区| 91精品国产91综合久久蜜臀| 国产日韩av一区| 亚洲成人免费av| 成人激情开心网| 亚洲婷婷综合久久一本伊一区| 一区二区三区蜜桃| 韩国理伦片一区二区三区在线播放| 成人一区在线看| 91精品国产高清一区二区三区| 国产清纯白嫩初高生在线观看91 | 精品久久久网站| 一区二区三区自拍| 久久99国产精品久久99 | 亚洲日韩欧美一区二区在线| 日韩av在线播放中文字幕| 99这里都是精品| 2023国产精华国产精品| 亚洲成a人在线观看| www.一区二区| 久久天天做天天爱综合色| 亚洲成人久久影院| 99在线热播精品免费| 久久久三级国产网站| 日韩精品一二三区| 日本道精品一区二区三区| 国产女人aaa级久久久级 | 日韩精品一区二区三区视频在线观看 | 欧洲在线/亚洲| 国产精品久久夜| 国产一区二区不卡在线| 欧美一区三区四区| 亚洲一二三专区| 色综合久久88色综合天天免费| 久久九九99视频| 国内成人精品2018免费看| 欧美三级一区二区| 亚洲宅男天堂在线观看无病毒| 不卡av在线免费观看| 欧美国产成人在线| 国产精品一线二线三线精华| 欧美videossexotv100| 日韩av电影免费观看高清完整版 | 欧美激情一区二区三区不卡| 韩国v欧美v亚洲v日本v| 精品久久国产老人久久综合| 免费一级片91| 欧美成人女星排行榜|