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

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

?? pengzhuang.java

?? 手機游戲
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
						if(tankclasstmp.bullet.isVisible())
							movebullet(tankclasstmp);//移動子彈
						else
							tankclasstmp.setBulletWay(tankclasstmp.tank.getFrame());
					break;
				}
				
			}
			else
			{
				tanks.removeElementAt(i);
				lm1.remove(tankclasstmp.tank);
				i--;
				break;
			}
				
		}
	}
	public void movebullet(tanksprite tanksp)
	{
			switch(tanksp.getBulletWay())
			{
				case(0):
					tanksp.bullet.move(0,-2);
					for(int j=0;j<3;j++)
					{
						if(tanksp.bullet.getY()>0)
						{
							switch(tl1.getCell((tanksp.bullet.getX()+j)/mapwidth,(tanksp.bullet.getY()-1)/mapheight))
							{
								case(2):
									tl1.setCell((tanksp.bullet.getX()+j)/mapwidth,(tanksp.bullet.getY()-1)/mapheight,1);
									tanksp.bullet.setVisible(false);
									j=3;
								break;
								case(3):
									tanksp.bullet.setVisible(false);
									j=3;
								break;
							}
						}
						else
						{
							tanksp.bullet.setVisible(false);
							j=3;
						}
					}
				break;
				
				case(1):
					tanksp.bullet.move(2,0);
					for(int j=0;j<3;j++)
					{
						//打磚或鋼鐵
						if(tanksp.bullet.getX()+2<mapcols*mapwidth)
						{
							switch(tl1.getCell((tanksp.bullet.getX()+1)/mapwidth,(tanksp.bullet.getY()+j)/mapheight))
							{
								case(2):
									tl1.setCell((tanksp.bullet.getX()+1)/mapwidth,(tanksp.bullet.getY()+j)/mapheight,1);
									tanksp.bullet.setVisible(false);
									j=3;
								break;
								case(3):
									tanksp.bullet.setVisible(false);
									j=3;
								break;
							}
						}
						else
						{
								tanksp.bullet.setVisible(false);
								j=3;
						}
					}
				break;
				
				case(2):
					
					tanksp.bullet.move(0,2);
					for(int j=0;j<3;j++)
					{
						//打磚或鋼鐵
						if(tanksp.bullet.getY()+2<maprows*mapheight)
						{
							switch(tl1.getCell((tanksp.bullet.getX()+j)/mapwidth,(tanksp.bullet.getY()+1)/mapheight))
							{
								case(2):
									tl1.setCell((tanksp.bullet.getX()+j)/mapwidth,(tanksp.bullet.getY()+1)/mapheight,1);
									tanksp.bullet.setVisible(false);
									j=3;
								break;
								case(3):
									tanksp.bullet.setVisible(false);
									j=3;
								break;
							}
						}
						else
						{
							tanksp.bullet.setVisible(false);
							j=3;
						}
					}
				break;
				
				case(3):
					tanksp.bullet.move(-2,0);
					for(int j=0;j<3;j++)
					{
						//打磚或鋼鐵
						if(tanksp.bullet.getX()>0)
						{
							switch(tl1.getCell((tanksp.bullet.getX()-1)/mapwidth,(tanksp.bullet.getY()+j)/mapheight))
							{
								case(2):
									tl1.setCell((tanksp.bullet.getX()-1)/mapwidth,(tanksp.bullet.getY()+j)/mapheight,1);
									tanksp.bullet.setVisible(false);
									j=3;
								break;
								case(3):
									tanksp.bullet.setVisible(false);
									j=3;
								break;
							}
						}
						else
						{
								tanksp.bullet.setVisible(false);
								j=3;
						}
					}
				break;
			
		}
	}
	
	public int randomWay()
	{
		Random random = new Random();
		int randnum = random.nextInt(); 
   	int tankway = Math.abs(randnum % 4); 
		
		return (tankway);
	}
	
	//按鍵
	public void input()
	{
		int keystate=getKeyStates();
		//System.out.println(keystate);
		
		if(keystate==512)
		{
			tanksprite tankclass=null;
			
			if(totaltanknum>0)
			{
				tankclass=new tanksprite(totaltanknum--);
				if(tankclass!=null)
				{
					tanks.addElement(tankclass);
					lm1.insert(tankclass.tank,1);
					lm1.insert(tankclass.bullet,1);
				}
			}
			
		}	
		if(keystate==1024)
		{
			if(tanks.size()>0)
			{
				tanksprite tmptank=(tanksprite)tanks.elementAt(0);
				tanks.removeElementAt(0);
				lm1.remove(tmptank.tank);
			}
		}
	
		//我方開火
		if((keystate&FIRE_PRESSED)!=0)
		{
			boolean mayfire=false;
			switch(firenum%2)
			{
				case(0):
					firetime1=System.currentTimeMillis();
				break;
				case(1):
					firetime2=System.currentTimeMillis();
					//firenum=0;
				break;
			}
			if(firetime2-firetime1<playerfireinterval)
				firenum=1;
			else
			{
				firetime1=firetime2;
				mayfire=true;
			}
				
				bulletsprite bullet=null;
			
				if(bullets.size()<1&&mayfire)
				{
					bullet=new bulletsprite();
					switch(sp1.getFrame())//根據當前坦克的方向創建子彈
					{
						case(0):
							bullet.setbulletway(0);
						break;
						case(1):
							bullet.setbulletway(1);
						break;
						case(2):
							bullet.setbulletway(2);
						break;
						case(3):
							bullet.setbulletway(3);
						break;
					}
				}
			
				if(bullet!=null)
				{
					switch(bullet.bulletway)
					{
						case(0):
							bullet.bullet.setPosition(sp1x+3,sp1y);
						break;
						case(1):
							bullet.bullet.setPosition(sp1x+tankwidth,sp1y+3);
						break;	
						case(2):
							bullet.bullet.setPosition(sp1x+3,sp1y+tankheight);
						break;
						case(3):
							bullet.bullet.setPosition(sp1x,sp1y+3);
						break;
					}
				
					bullets.addElement(bullet);
					lm1.insert(bullet.bullet,1);
				}
			
		}
		
		if((keystate&UP_PRESSED)!=0)
		{
			sp1.setFrame(0);
			if(canMove(sp1))
				sp1y--;
		}
		else if((keystate&RIGHT_PRESSED)!=0)
		{
			sp1.setFrame(1);
			if(canMove(sp1))
				sp1x++;
		}
		else if((keystate&DOWN_PRESSED)!=0)
		{
			sp1.setFrame(2);
			if(canMove(sp1))
				sp1y++;
		}
		else if((keystate&LEFT_PRESSED)!=0)
		{
			sp1.setFrame(3);
			if(canMove(sp1))
				sp1x--;
		}
			
	}
	
	public void keyReleased(int keyCode)
	{
	}
	
	//根據坦克前方的物體來判斷坦克能否移動
	public boolean canMove(Sprite sp)//(int way)
	{
		int cellnum,x,y;
		
		x=sp.getX();
		y=sp.getY();
		if(sp.getX()<0)
			x=0;
		if(sp.getY()<0)
			y=0;
			
		//敵方坦克之間是否發生碰撞
		for(int i=0;i<tanks.size();i++)
		{
			tanksprite tankclass=(tanksprite)tanks.elementAt(i);
			if(sp!=tankclass.tank)
			{
				switch(sp.getFrame())
				{
					case(0):
						if(sp.getY()==(tankclass.tank.getY()+tankheight)||sp.getY()==(tankclass.tank.getY()+tankheight-1))
							if(sp.getX()>(tankclass.tank.getX()-tankwidth)&&sp.getX()<(tankclass.tank.getX()+tankwidth))
								return false;
					break;
				
					case(1):
						if((sp.getX()+tankwidth)==tankclass.tank.getX()||(sp.getX()+tankwidth)==tankclass.tank.getX()+1)
							if(sp.getY()>(tankclass.tank.getY()-tankheight)&&sp.getY()<(tankclass.tank.getY()+tankheight))
								return false;
					break;
				
					case(2):
						if((sp.getY()+tankheight)==tankclass.tank.getY()||(sp.getY()+tankheight)==tankclass.tank.getY()+1)
							if(sp.getX()>(tankclass.tank.getX()-tankwidth)&&sp.getX()<(tankclass.tank.getX()+tankwidth))
								return false;
					break;
				
					case(3):
						if(sp.getX()==(tankclass.tank.getX()+tankwidth)||sp.getX()==(tankclass.tank.getX()+tankwidth)-1)
							if(sp.getY()>(tankclass.tank.getY()-tankheight)&&sp.getY()<(tankclass.tank.getY()+tankheight))
								return false;
					break;
				}
			}
		}
		
		//我方坦克與敵方坦克之間是否發生碰撞
		if(sp!=sp1)//如果是敵方坦克
		{
			switch(sp.getFrame())
			{
				case(0):
					if(sp.getY()==(sp1y+tankheight)||sp.getY()==(sp1y+tankheight-1))
						if(sp.getX()>(sp1.getX()-tankwidth)&&sp.getX()<(sp1.getX()+tankwidth))
							return false;
				break;
				
				case(1):
					if((sp.getX()+tankwidth)==sp1.getX()||(sp.getX()+tankwidth)==sp1.getX()+1)
						if(sp.getY()>(sp1.getY()-tankheight)&&sp.getY()<(sp1.getY()+tankheight))
							return false;
				break;
				
				case(2):
					if((sp.getY()+tankheight)==sp1.getY()||(sp.getY()+tankheight)==sp1.getY()+1)
						if(sp.getX()>(sp1.getX()-tankwidth)&&sp.getX()<(sp1.getX()+tankwidth))
							return false;
				break;
				
				case(3):
					if(sp.getX()==(sp1.getX()+tankwidth)||sp.getX()==(sp1.getX()+tankwidth)-1)
						if(sp.getY()>(sp1.getY()-tankheight)&&sp.getY()<(sp1.getY()+tankheight))
							return false;
				break;
		
			}
		}
		else//如果是我方坦克的話,判斷前方是否是敵方坦克如果是的話我我方坦克不能移動
		{
			
			for(int i=0;i<tanks.size();i++)
			{
				tanksprite tankclass=(tanksprite)tanks.elementAt(i);
				if(sp.collidesWith(tankclass.tank,true))
					return false;
			}
		}
		
		//坦克和墻、草、鋼鐵、之間是否發生碰撞
		switch(sp.getFrame())
		{
			case(0)://UP_PRESSED
				for(int i=0;i<tankwidth;i++)
				{
					if(y-1<0)
						return false;
					else
						cellnum=tl1.getCell((x+i)/mapwidth,(y-1)/mapheight);
					if(cellnum!=1&&cellnum!=4)
						return false;
				}
			break;
			case(2)://DOWN_PRESSED
			for(int i=0;i<tankwidth;i++)
			{
				if((y+tankheight+1)/mapheight>=maprows)
					return false;
				else
					cellnum=tl1.getCell((x+i)/mapwidth,(y+tankheight+1)/mapheight);
				if(cellnum!=1&&cellnum!=4)
					return false;
			}
			break;
			case(3)://LEFT_PRESSED
			for(int i=0;i<tankheight;i++)
			{
				if(x-1<0)
					return false;
				else
					cellnum=tl1.getCell((x-1)/mapwidth,(y+i)/mapheight);
				if(cellnum!=1&&cellnum!=4)
					return false;
			}
			break;
			case(1)://RIGHT_PRESSED
			for(int i=0;i<tankheight;i++)
			{
				if((x+tankwidth+1)/mapwidth>=mapcols)
					return false;
				else
					cellnum=tl1.getCell((x+tankwidth+1)/mapwidth,(y+i)/mapheight);
				
				if(cellnum!=1&&cellnum!=4)
					return false;
			}
			break;
		}
		
		return true;
	}
}

class bulletsprite
{
	public Sprite bullet;
	public int bulletway;
	public Image bulletImage;
	
	public bulletsprite()
	{
		try
		{
			this.bulletImage=Image.createImage("/bullet.png");
		}catch(Exception e){
			System.out.println(e);
		}
		this.bullet=new Sprite(bulletImage,3,3);
		
	}
	public void setbulletway(int way)
	{
		this.bulletway=way;
	}
}

class tanksprite
{
	public Sprite tank,bullet;
	public Image tankImage,bulletImage;
	public int way=2,bulletway=2;//坦克方向,子彈方向
	public int tankwaytime=0,bulletwaytime=0;//坦克運動時間,子彈運動時間
	public int maxtankwaytime=150,maxbulletwaytime=30;//坦克運行多長時間改變一次方向,子彈至少間隔多長時間發射一次
	
	public tanksprite(int num)
	{
		try
		{
			this.tankImage=Image.createImage("/tank2.png");
			this.bulletImage=Image.createImage("/bullet.png");
		}catch(Exception e){
			System.out.println(e);
		}
		this.tank=new Sprite(tankImage,10,10);
		this.bullet=new Sprite(bulletImage,3,3);
		tank.setFrame(2);
		tank.setPosition(num%3*6*12,1);
		bullet.setPosition(num%3*6*12+3,10);
	}
	//得到坦克的方向和設置坦克的方向
	public int getWay()
	{
		return this.way;
	}
	public void setWay(int way)
	{
		this.way=way;
	}
	//得到子彈的方向和設置子彈的方向
	public int getBulletWay()
	{
		return this.bulletway;
	}
	public void setBulletWay(int bulletway)
	{
		this.bulletway=bulletway;
	}
	public void bulletwaytimeplus()
	{
		this.bulletwaytime++;
	}
	public boolean getbulletwaytime()
	{
		if(bulletwaytime>maxbulletwaytime)
		{
			this.bulletwaytime=0;
			return true;
		}
		else
			return false;
	}
	public void tankwaytimeplus()
	{
		this.tankwaytime++;
	}
	public boolean gettankwaytime()
	{
		if(tankwaytime>maxtankwaytime)
		{
			this.tankwaytime=0;
			return true;
		}
		else
			return false;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区成人| 九一久久久久久| 91色婷婷久久久久合中文| 中文字幕的久久| 成人一道本在线| 亚洲欧美一区二区三区孕妇| 91论坛在线播放| 午夜成人免费电影| 日韩小视频在线观看专区| 韩国视频一区二区| 欧美国产精品劲爆| 色综合久久久久综合99| 亚洲丰满少妇videoshd| 日韩精品专区在线| 成人一级视频在线观看| 一区二区三区精品在线观看| 欧美精品第1页| 国产原创一区二区三区| 中文字幕亚洲成人| 欧美日韩在线观看一区二区 | 国产成人综合网站| 国产欧美日韩麻豆91| 成人国产精品免费观看动漫 | 日韩精品电影一区亚洲| 欧美大片国产精品| 成人黄色电影在线| 婷婷开心激情综合| 国产精品免费观看视频| 欧美中文字幕久久| 国产精品影视在线观看| 亚洲综合在线观看视频| 欧美成人三级在线| 色综合久久久网| 久久精品免费观看| 国产精品国产三级国产aⅴ中文| 在线视频一区二区三区| 国产精品主播直播| 亚洲午夜久久久| 国产亚洲精品7777| 欧美日韩精品一区二区三区蜜桃| 韩国毛片一区二区三区| 亚洲欧美日韩国产手机在线| 精品免费日韩av| 欧美综合在线视频| 国产91综合网| 亚洲日本va在线观看| 欧美日韩精品专区| 国产91富婆露脸刺激对白| 午夜精品久久久久久久久| 中文字幕精品在线不卡| 91精品免费在线| 日本高清不卡在线观看| 国产在线精品免费av| 亚洲精品va在线观看| 国产精品国产三级国产aⅴ入口| 91麻豆精品国产91久久久久| 91免费视频网址| 成人免费观看视频| 国产一区二区三区久久悠悠色av| 亚洲综合免费观看高清完整版 | 久久久99精品免费观看不卡| 精品视频在线看| 日本韩国视频一区二区| 成人一二三区视频| 国产永久精品大片wwwapp| 日韩成人免费电影| 亚洲一二三区在线观看| 亚洲天堂网中文字| 国产精品久久久久影院亚瑟| 久久伊人蜜桃av一区二区| 日韩精品一区二区三区视频| 欧美精品久久99| 欧美丰满少妇xxxbbb| 欧美日韩精品一区二区三区 | 捆绑变态av一区二区三区| 天堂成人国产精品一区| 亚洲国产日韩a在线播放性色| 一区二区三区小说| 亚洲综合在线五月| 亚洲电影一级片| 午夜欧美电影在线观看| 亚洲高清视频的网址| 午夜一区二区三区视频| 亚洲6080在线| 日本不卡一二三| 九色综合国产一区二区三区| 激情综合一区二区三区| 国内精品久久久久影院薰衣草 | 精品国精品国产| 亚洲精品在线一区二区| 国产欧美精品在线观看| 欧美国产精品一区| 18成人在线视频| 亚洲gay无套男同| 日本午夜一区二区| 国产精品一二三在| 日韩免费观看高清完整版 | 日韩专区欧美专区| 日韩电影一二三区| 国产一区二区三区久久久| 国产精品亚洲午夜一区二区三区| 国产精品99久久久久久久女警| 国产mv日韩mv欧美| 色屁屁一区二区| 91精品国模一区二区三区| 日韩一区二区麻豆国产| 日本一区二区三区在线不卡| 亚洲免费av在线| 免费人成精品欧美精品| 国产成人精品亚洲777人妖 | 欧美在线综合视频| 日韩欧美一级精品久久| 国产精品你懂的在线| 亚洲一区二区av电影| 久久精品国产亚洲aⅴ| 成人精品免费网站| 制服丝袜亚洲精品中文字幕| 日本一区二区视频在线观看| 亚洲一二三区不卡| 国产一区二区三区不卡在线观看| 91亚洲国产成人精品一区二区三 | 欧美精品一区二区三区高清aⅴ | 欧美日韩国产小视频| 久久精品夜色噜噜亚洲a∨| 亚洲免费观看高清完整版在线观看熊 | 欧美日韩激情在线| 国产精品免费看片| 久久99久久久久| 欧美日韩另类国产亚洲欧美一级| 久久久久久亚洲综合影院红桃| 亚洲精品免费视频| 国产一区免费电影| 欧美性猛片xxxx免费看久爱| 久久这里只有精品6| 亚洲在线一区二区三区| 国产精选一区二区三区| 欧美亚洲禁片免费| 亚洲欧洲成人自拍| 久久精品国产在热久久| 欧美日韩一级二级三级| 国产精品电影一区二区| 精品无人码麻豆乱码1区2区 | 亚洲欧美一区二区久久| 国产精品一区二区三区四区| 欧美日韩一区二区三区在线看 | 九色综合国产一区二区三区| 欧洲视频一区二区| 国产激情精品久久久第一区二区 | av电影天堂一区二区在线观看| 欧美一区二区国产| 亚洲大型综合色站| 91丝袜国产在线播放| 国产午夜精品一区二区三区嫩草 | 94-欧美-setu| 国产精品水嫩水嫩| 国产成人自拍网| 欧美va亚洲va香蕉在线| 秋霞午夜av一区二区三区| 欧美午夜宅男影院| 夜夜精品视频一区二区 | 国产成人在线观看免费网站| 欧美一级一区二区| 婷婷开心激情综合| 这里只有精品电影| 日产国产高清一区二区三区| 欧美日韩一区久久| 日韩av中文在线观看| 欧美一区二视频| 日本人妖一区二区| 日韩三级av在线播放| 久久电影网站中文字幕| 精品国产乱子伦一区| 国产高清久久久| 久久精品水蜜桃av综合天堂| 国产精品资源站在线| 国产欧美精品日韩区二区麻豆天美| 国产精品一区二区黑丝| 欧美高清一级片在线观看| 成人污视频在线观看| 亚洲图片你懂的| 欧美日韩日日骚| 日本vs亚洲vs韩国一区三区| 欧美videossexotv100| 成人一区在线看| 亚洲精品水蜜桃| 7777女厕盗摄久久久| 视频在线观看一区| 久久久.com| 91丝袜美腿高跟国产极品老师| 亚洲乱码国产乱码精品精的特点| 在线免费观看不卡av| 日本美女一区二区| 国产欧美日韩三区| 欧美色网站导航| 久久国产欧美日韩精品| 欧美国产日韩亚洲一区| 日本韩国一区二区| 久久99久久久久| 亚洲欧美日韩一区二区三区在线观看| 在线看日本不卡|