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

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

?? player.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 java.awt.Color;
import netwar.utils.*;
import netwar.utils.vectorgraphics.ColorSpectrum;

/** Class representing a single Player's data.
 * This is in-game data including a reference to the Base,
 * as well as data taken from the PlayerSettings.
 * @see netwar.settings.PlayerSettings
 * @author Group N2 - Project Netwar
 * @author Daniel Grund
 */
public class Player {
	private Color teamColor;
	private ColorSpectrum teamCSfade;
	private ColorSpectrum darkCSfade;
	private ColorSpectrum lightCSfade;
	
	private int number;
	private Base TeamBase;
	private int cash = 0;
	private static int localPNum = 0;
	private static Player players[] = new Player[0];

        private Vector myGameObjects = new LVector();
        private int gameObjectsCount = 0;
	/** Checks if there are enough players to continue the game.
	 * @return true if there are one or zero players with bases.
	 */
	public static boolean EndGame() {
		int survivors = 0;
		for(int i = 0; i < players.length; i++) {
			if(!players[i].baseDead())
				survivors++;
		}
		return (survivors < 2);
	}
	/** Checks if this player's base is dead
	 * @return true if the base is dead.
	 */
	public boolean baseDead() {
		if(TeamBase == null)
			return true;
		if(TeamBase.isDead()) {
			TeamBase = null;
			return true;
		}
		return false;
	}
	/** Accessor for TeamBase
	 * @return the Base for this player, if it is still alive.
	 */
	public Base getBase() {
		return TeamBase;
	}
	/** Returns the local player
	 * @return the local player.
	 */
	public static Player getLocal() {
		return players[localPNum-1];
	}
	/**Returns the player with number pNum
	 * @param pNum the number of the desired player
	 * @return the player
	 */
	public static Player getPlayer(int pNum) {
		return players[pNum-1];
	}
	/** Returns this player's number.
	 * Used in network communications.
	 * @return the player's number.
	 */
	public int getNumber() {
		return number;
	}
	/** Returns the team color
	 * @return A java.awt.Color
	 */
	public Color getColor() {
		return teamColor;
	}
	/** Provide a ColorSpectrum for fading units. (Such as the BeamSniper)
	 * Return the ColorSpectrum with 100 shades varying from mostly transparant team color / 2 to opaque team color.
	 * @return a ColorSpectrum
	 */
	public ColorSpectrum getTeamFadingColorSpectrum() {
		if(teamCSfade == null)
			teamCSfade = new ColorSpectrum(	teamColor.getRed() / 2,   teamColor.getRed(),
						teamColor.getGreen() / 2, teamColor.getGreen(),
						teamColor.getBlue() / 2,  teamColor.getBlue(),
						32, 255, 100);
		return teamCSfade;
	}
	/** Provide a ColorSpectrum for fading units. (Such as the BeamSniper)
	 * Return the ColorSpectrum with 100 shades varying from mostly transparant team color to opaque team color * 2.
	 * @return a ColorSpectrum
	 */
	public ColorSpectrum getTeamFadingBrightColorSpectrum() {
		if(lightCSfade == null)
			lightCSfade = new ColorSpectrum(	teamColor.getRed(),   Math.min(teamColor.getRed() * 2 , 255),
						teamColor.getGreen(), Math.min(teamColor.getGreen() * 2 , 255),
						teamColor.getBlue(),  Math.min(teamColor.getBlue() * 2 , 255),
						32, 255, 100);
		return lightCSfade;
	}
	/** Provide a ColorSpectrum for fading units. (Such as the BeamSniper)
	 * Return the ColorSpectrum with 100 shades varying from mostly transparant team color / 4 to opaque team color / 2.
	 * @return a ColorSpectrum
	 */
	public ColorSpectrum getTeamFadingDarkColorSpectrum() {
		if(darkCSfade == null)
			darkCSfade = new ColorSpectrum(	teamColor.getRed() / 4,   teamColor.getRed() / 2,
						teamColor.getGreen() / 4, teamColor.getGreen() / 2,
						teamColor.getBlue() / 4,  teamColor.getBlue() / 2,
						32, 255, 100);
		return darkCSfade;
	}
	/** Creates a new instance of Player.
	 *  Should only be called by startGame, in player number order
	 */
	public Player(int pNumber, int baseX, int baseY, Color tColor, boolean isLocal) {
		Assert.notFalse(pNumber == players.length + 1, "Player initialized out of order.");
		
		Player p[] = new Player[pNumber];
		for(int i = 0; i < pNumber - 1; i++)
			p[i] = players[i];
		p[pNumber-1] = this;
		players = p;
		number = pNumber;
		if(isLocal)
			localPNum = pNumber;
		
		teamColor = tColor;
		
                if(netwar.Mapper.theApp == null) {
                    TeamBase = new Base(baseX, baseY);
                    GameObject.newGameObject(TeamBase, baseX, baseY, 0, this);
                }
	}
	/** Accessor to acquire the amount of money a player has.
	 * @return this player's cash count.
	 */
	public int getCash() {
		return cash;
	}
	/** Mutator to alter amount of money a player has.
	 * Cash may only be altered by adding a number (positive or negative).
	 * Cash may not become negative.
	 * @param addend The number to add to cash, which may be negative.
	 */
	public void addToCash(int addend) {
		Assert.notFalse(cash + addend >= 0, "Negative cash!");
		cash += addend;
	}

        /** Add a new GameObject to this player's list.
          * @param go The new GameObject.
          */
        public void newObject(GameObject go) {
            myGameObjects.append(go);
            gameObjectsCount++;
        }

        /** Remove an old GameObject from this player's list.
          * @param go The old GameObject.
          */
        public void remObject(GameObject go) {
          myGameObjects.goFirst();
          while(myGameObjects.isInList()) {
                if(myGameObjects.get() == go) {
                     myGameObjects.remove();
                     gameObjectsCount--;
                } else
                     myGameObjects.goNext();
          }
        }
        /** Get first game object in this player's list.
         * @return the first GameObject.
         */
        public GameObject getFirstObject() {
          myGameObjects.goFirst();
          return (GameObject) myGameObjects.get();
         }
         /** Get next game object in this player's list.
          * Note that a call to remObject will disrupt the sequence.
          * Do not allow it to be called between a call to getFirstObject
          * and a call to getNextObject!
          * @return the next GameObject in the list.
          */
        public GameObject getNextObject() {
          myGameObjects.goNext();
          return (GameObject) myGameObjects.get();
        }

        /** Return the number of objects in this player's list.
         * @return the count.
         */
        public int numObject() { return gameObjectsCount; }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产一级| 欧美成va人片在线观看| 国产拍揄自揄精品视频麻豆| 国产a视频精品免费观看| 亚洲欧美日韩国产成人精品影院| 欧美综合视频在线观看| 麻豆中文一区二区| 国产精品久久久久久久久晋中 | 色噜噜久久综合| 亚洲aaa精品| 国产欧美精品在线观看| 欧美—级在线免费片| 欧美日本精品一区二区三区| 欧美撒尿777hd撒尿| 99久久国产综合色|国产精品| 亚洲成人在线网站| 亚洲成人av电影在线| 日本女优在线视频一区二区| 亚洲欧美日韩国产综合| 亚洲精品videosex极品| 国产精品嫩草99a| 久久久亚洲午夜电影| yourporn久久国产精品| 国产成人精品影视| 国产美女视频一区| 加勒比av一区二区| 麻豆精品视频在线观看视频| 国产精品主播直播| 国产在线看一区| 久草精品在线观看| 99久久777色| 日韩一区二区视频在线观看| 欧美一区二区三区小说| 欧美精品久久久久久久久老牛影院 | 日韩欧美成人激情| 欧美性xxxxx极品少妇| 色婷婷综合久久久中文一区二区| 成人丝袜18视频在线观看| 国产成人在线视频免费播放| 欧美艳星brazzers| 国产日韩精品一区二区三区| 亚洲一区二区三区四区的| 亚洲精品一二三四区| 老汉av免费一区二区三区| 美女脱光内衣内裤视频久久影院| 岛国精品在线播放| 日韩一级片在线播放| 另类小说综合欧美亚洲| 成人自拍视频在线| 欧美一区二区三区爱爱| 亚洲精品网站在线观看| 国产精品一区二区在线播放| 欧美日韩国产另类一区| 亚洲欧美日韩中文字幕一区二区三区 | 一区二区三区四区在线播放| 亚洲人xxxx| 国产精品一区在线观看乱码| 欧美亚洲丝袜传媒另类| 亚洲欧洲精品天堂一级| 亚洲欧美电影一区二区| 国产精品亚洲一区二区三区在线 | 久久久亚洲精品一区二区三区| 亚洲精品国产一区二区精华液 | 一区二区三区在线视频观看 | 欧美亚洲一区二区三区四区| 国产精品日韩成人| 国产一区二区三区精品欧美日韩一区二区三区 | 91传媒视频在线播放| 欧美韩日一区二区三区四区| 精品一二三四在线| 日韩欧美一二三| 另类综合日韩欧美亚洲| 日韩午夜在线观看| 免费成人小视频| 国产91在线观看丝袜| 欧美成人a视频| 久久精工是国产品牌吗| 欧美一区二区二区| 免费成人结看片| 日韩视频123| 九九视频精品免费| 精品粉嫩aⅴ一区二区三区四区| 国产精品天美传媒沈樵| 国产盗摄女厕一区二区三区| 久久精品在线免费观看| 一区av在线播放| 欧洲一区在线观看| 五月婷婷欧美视频| 粉嫩av一区二区三区在线播放| 精品1区2区在线观看| 国产毛片精品视频| 国产女主播视频一区二区| 国产成人在线免费| 自拍av一区二区三区| 久久se精品一区二区| 精品999久久久| 成人免费三级在线| 夜夜嗨av一区二区三区网页 | 国产一区二区视频在线| 欧美韩国一区二区| 91美女在线观看| 久久久精品国产99久久精品芒果 | 精品久久久久久久久久久院品网| 国产米奇在线777精品观看| 中文字幕欧美日韩一区| 91国偷自产一区二区开放时间 | 久久精品国产免费| 欧美韩国日本不卡| 欧美日韩久久一区| 粉嫩av一区二区三区| 亚洲自拍偷拍图区| 欧美成人精品二区三区99精品| 国产盗摄精品一区二区三区在线| 一二三四社区欧美黄| 精品国产一区二区三区久久影院| 成人开心网精品视频| 日本不卡免费在线视频| 国产丝袜美腿一区二区三区| 欧美日韩精品一二三区| 国产成人自拍高清视频在线免费播放| 自拍偷拍国产亚洲| 2014亚洲片线观看视频免费| 日本成人中文字幕在线视频| 国产精品萝li| 日韩免费成人网| 91一区二区三区在线观看| 麻豆精品在线播放| 亚洲自拍都市欧美小说| 欧美韩日一区二区三区四区| 91精品国产综合久久香蕉麻豆| 天天综合网 天天综合色| 久久久久国产精品人| 91精品一区二区三区久久久久久| 成人激情小说网站| 国产精品水嫩水嫩| 精品乱码亚洲一区二区不卡| 欧美唯美清纯偷拍| 色综合久久久久网| 成人av资源网站| 国产又粗又猛又爽又黄91精品| 亚洲午夜av在线| 日韩午夜激情免费电影| 欧美自拍丝袜亚洲| 成人免费三级在线| 成人三级在线视频| 国产精品一区二区免费不卡| 捆绑调教美女网站视频一区| 天堂一区二区在线免费观看| 精品国产制服丝袜高跟| 日韩三级高清在线| 欧美一区二区三区视频免费播放| 欧美图区在线视频| 欧美剧情片在线观看| 欧美电影在哪看比较好| 69堂亚洲精品首页| 日韩一卡二卡三卡四卡| 日韩一级二级三级| 26uuu另类欧美亚洲曰本| 26uuu另类欧美| 国产欧美日韩久久| 中文字幕一区视频| 亚洲最快最全在线视频| 亚洲综合视频在线观看| 亚洲va国产天堂va久久en| 亚洲成a人在线观看| 日韩中文字幕av电影| 轻轻草成人在线| 国产精品性做久久久久久| 成人久久18免费网站麻豆| 成人精品国产免费网站| 91精品1区2区| 日韩一区二区三区视频在线观看| 26uuu国产日韩综合| 欧美激情在线观看视频免费| 亚洲人午夜精品天堂一二香蕉| 一区二区高清在线| 捆绑变态av一区二区三区| 国产精品影音先锋| 在线观看日韩一区| 日韩一级免费观看| 中文久久乱码一区二区| 一区二区在线观看av| 美女视频免费一区| 99久久久久久| 日韩情涩欧美日韩视频| 国产精品视频免费| 性感美女久久精品| 国产精品一区二区在线观看不卡| 色女孩综合影院| 日韩欧美国产1| 国产精品盗摄一区二区三区| 午夜伊人狠狠久久| 粉嫩嫩av羞羞动漫久久久| 精品视频1区2区| 国产精品午夜在线观看| 日韩av电影免费观看高清完整版| 成人福利视频在线| 精品久久99ma| 亚洲bt欧美bt精品777| 99re8在线精品视频免费播放|