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

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

?? pengzhuang.java

?? 手機(jī)游戲
?? JAVA
?? 第 1 頁 / 共 2 頁
字號(hào):
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.game.Sprite;
import java.util.Vector;
import java.util.Random;

public class pengzhuang extends MIDlet
{
	private Display display;
	private myCanvas cs;
	
	public void startApp()
	{
		display=Display.getDisplay(this);
		cs=new myCanvas();
		cs.start();
		display.setCurrent(cs);
	}
	
	public void pauseApp()
	{
	}
	
	public void destroyApp(boolean unconditional)
	{
		cs.exit();
		System.gc();
		notifyDestroyed();
	}
}

class myCanvas extends GameCanvas implements Runnable
{
	private Image img1,img2;//我方坦克、背景圖片
	private Sprite sp1;//我方坦克
	private TiledLayer tl1,tlcao;//背景層和草層
	private LayerManager lm1;
	private static final int mapcols=13,maprows=25;//地圖13行,25列
	private static final int mapwidth=12,mapheight=6;//單位地圖寬和高
	private static final int tankwidth=10,tankheight=10;
	private int[] map;
	private Vector bullets,tanks,deadtanks;//玩家子彈,敵方坦克,敵方被擊中的坦克序列 
	private int sp1x=4*mapwidth,sp1y=(maprows-2)*mapheight;
	private int totaltanknum=20;
	private int delay=0,delay1=0;//坦克,被擊中坦克子彈的延時(shí)
	boolean conti=true;
	int rate=10;
	
	int playerfireinterval=800;//玩家兩發(fā)子彈之間的最小間隔(毫秒)
	private int firenum=0;
	private long firetime1=0,firetime2=-1;
	
	public myCanvas()
	{
		super(true);
		try
		{
			img1=Image.createImage("/tank.png");
			img2=Image.createImage("/bg.png");
		}catch(Exception exp){
			System.out.println(exp);
		}
		
		sp1=new Sprite(img1,tankwidth,tankheight);
		sp1.setPosition(sp1x,sp1y);
		sp1.setFrame(0);
		
		tl1=new TiledLayer(mapcols,maprows,img2,mapwidth,mapheight);
		
		//草層
		tlcao=new TiledLayer(1,3,img2,mapwidth,mapheight);
		tlcao.setCell(0,0,4);
		tlcao.setCell(0,1,4);
		tlcao.setCell(0,2,4);
		tlcao.setPosition(5*mapwidth,10*mapheight);
		
		lm1=new LayerManager();
		
		 int tmpmap[]={1,1,1,1,1,1,1,1,1,1,1,1,1,
			1,1,1,1,1,1,1,1,1,1,1,1,1,
			1,2,1,2,1,2,1,2,1,2,1,2,1,
			1,2,1,2,1,2,1,2,1,2,1,2,1,
			1,2,1,2,1,2,1,2,1,2,1,2,1,
			1,2,1,2,1,2,3,2,1,2,1,2,1,
			1,2,1,2,1,2,1,2,1,2,1,2,1,
			1,2,1,2,1,2,1,2,1,2,1,2,1,
			1,2,1,2,1,1,1,1,1,2,1,2,1,
			1,1,1,1,1,1,1,1,1,1,1,1,1,
			1,1,1,1,1,4,1,5,1,1,1,1,1,
			2,1,2,2,1,4,1,5,1,2,1,1,2,
			3,1,2,2,1,4,1,5,1,2,1,1,3,
			1,1,1,1,1,1,1,1,1,1,1,1,1,
			1,1,1,1,1,1,1,1,1,1,1,1,1,
			1,2,1,2,1,2,1,2,1,2,1,2,1,
			1,2,1,2,1,2,1,2,1,2,1,2,1,
			1,2,1,2,1,2,2,2,1,2,1,2,1,
			1,2,1,2,1,2,2,2,1,2,1,2,1,
			1,2,1,2,1,2,1,2,1,2,1,2,1,
			1,2,1,2,1,2,1,2,1,2,1,2,1,
			1,2,1,2,1,1,1,1,1,2,1,2,1,
			1,2,1,2,1,2,2,2,1,2,1,2,1,
			1,1,1,1,1,2,1,2,1,1,1,1,1,
			1,1,1,1,1,2,1,2,1,1,1,1,1,
			};
		map=tmpmap;
		bullets=new Vector();//子彈序列
		tanks=new Vector();//敵方坦克序列
		deadtanks=new Vector();//消亡的坦克的序列
		
		for(int i=0;i<map.length;i++)
		{
			int column=i%mapcols;
			int row=(i-column)/mapcols;
			tl1.setCell(column,row,map[i]);
		}
		lm1.append(tlcao);
		lm1.append(sp1);
		lm1.append(tl1);
		
		Graphics g=getGraphics();
		drawScreen(g);
	}
	
	public void start()
	{
		Thread t=new Thread(this);
		t.start();
	}
	
	public void exit()
	{
		conti=false;
	}	
	
	public void run()
	{
		System.out.println("run");
		long st=0,et=0;
		Graphics g=getGraphics();
		while(conti)
		{
			st=System.currentTimeMillis();
			input();
			drawScreen(g);//畫玩家子彈
			et=System.currentTimeMillis();
			if((et-st)<rate)
			{
				try
				{
					Thread.sleep(rate-(et-st));
				}catch(Exception exp){
				}
			}
			
			//畫敵方坦克
			if(tanks.size()>0)
			{
				delay++;
				if(delay==2)
				{
					drawTank();
					delay=0;
				}
			}
			
			//繼續(xù)運(yùn)行被擊中坦克的子彈
			delay1++;
			if(delay1==2)
			{
					for(int i=0;i<deadtanks.size();i++)
					{
						tanksprite deadtank=(tanksprite)deadtanks.elementAt(i);
						if(deadtank.bullet.isVisible())
						{
							movebullet(deadtank);
							
							
							//如果玩家坦克擊中消失的坦克的子彈的話則該子彈消失
							for(int j=0;j<bullets.size();j++)
							{
								bulletsprite sp1bullet=(bulletsprite)bullets.elementAt(j);
							
								if(sp1bullet.bullet.collidesWith(deadtank.bullet,true))
								{
									//玩家子彈消失
									bullets.removeElementAt(j);
									lm1.remove(sp1bullet.bullet);
									j--;
									
									//敵方子彈消失
									deadtank.bullet.setVisible(false);
								}
							
							}
						}
						else
						{
							deadtanks.removeElementAt(i);
							i--;
						}
				
					}
					delay1=0;
			}
			
			//判斷玩家坦克是否被擊中
			//sp1isshoted();
					
		}
	}
	
	private void drawScreen(Graphics g)
	{
		g.setColor(0xffffff);
		g.fillRect(0,0,getWidth(),getHeight());
		g.setColor(0x0000ff);
		
		sp1.setPosition(sp1x,sp1y);//玩家坦克的位置
		drawBullet();//畫子彈
		lm1.paint(g,40,30);
		flushGraphics();
	}
	
	//判斷我方坦克是否被擊中
	private void sp1isshoted()
	{
			for(int i=0;i<tanks.size();i++)
			{
				tanksprite tanksp=(tanksprite)tanks.elementAt(i);
				if(tanksp.bullet.collidesWith(sp1,true))
				{
					tanksp.bullet.setVisible(false);
					sp1x=4*mapwidth;
					sp1y=(maprows-2)*mapheight;
					sp1.setFrame(0);
				}
			}
	}
	
	private void drawBullet()
	{
		boolean finish=false;
		
		for(int i=0;i<bullets.size();i++)
		{
				bulletsprite tmp=(bulletsprite)bullets.elementAt(i);//子彈是否越界,如果越界的話就消失
				
				if(tmp.bullet.getY()>maprows*mapheight||tmp.bullet.getY()<0||tmp.bullet.getX()>mapcols*mapwidth||tmp.bullet.getX()<0)
				{
					bullets.removeElementAt(i);
					lm1.remove(tmp.bullet);
					i--;
				}
				else//判斷玩家子彈是否擊中敵方坦克,如果擊中的話就讓玩家子彈和敵方坦克消失
				{
					for(int l=0;l<tanks.size();l++)
					{
						tanksprite tanksp=(tanksprite)tanks.elementAt(l);
						
						//擊中敵方坦克的話敵方坦克消失
						if(tmp.bullet.collidesWith(tanksp.tank,true))
						{
							finish=true;
							
							bullets.removeElementAt(i);
							lm1.remove(tmp.bullet);
							i--;
							
							deadtanks.addElement(tanksp);
							tanks.removeElementAt(l);
							lm1.remove(tanksp.tank);
							l--;
							
							break;
						}
						
						//擊中敵方子彈的話兩方子彈消失
						if(tmp.bullet.collidesWith(tanksp.bullet,true))
						{
							finish=true;
							bullets.removeElementAt(i);
							lm1.remove(tmp.bullet);
							i--;
							
							tanksp.bullet.setVisible(false);
							break;
						}
						
					}
				}
				//玩家子彈沒有擊中敵方坦克
				if(!finish)
				{
					if(tmp.bulletway%4==0)
					{
						tmp.bullet.move(0,-3);
						//如果是磚或者是鋼鐵的話:則可能打掉,從而使子彈消亡
						for(int j=0;j<3;j++)
							//打磚或鋼鐵
							switch(tl1.getCell((tmp.bullet.getX()+j)/mapwidth,(tmp.bullet.getY()-1)/mapheight))
							{
								case(2)://前方是磚
									tl1.setCell((tmp.bullet.getX()+j)/mapwidth,(tmp.bullet.getY()-1)/mapheight,1);
									bullets.removeElementAt(i);
									lm1.remove(tmp.bullet);
									i--;
									j=3;//退出循環(huán)
								break;
								case(3)://前方鋼鐵
									bullets.removeElementAt(i);
									lm1.remove(tmp.bullet);
									i--;
									j=3;
								break;
							}	
					}
				
					if(tmp.bulletway%4==1)
					{
						tmp.bullet.move(3,0);
						for(int j=0;j<3;j++)
							//打磚或鋼鐵
							if(tmp.bullet.getX()+2<mapcols*mapwidth)
							{
								switch(tl1.getCell((tmp.bullet.getX()+1)/mapwidth,(tmp.bullet.getY()+j)/mapheight))
								{
									case(2):
										tl1.setCell((tmp.bullet.getX()+1)/mapwidth,(tmp.bullet.getY()+j)/mapheight,1);
										bullets.removeElementAt(i);
										lm1.remove(tmp.bullet);
										i--;
										j=3;
									break;
									case(3):
										bullets.removeElementAt(i);
										lm1.remove(tmp.bullet);
										i--;
										j=3;
									break;
								}
							}
					}
					
					if(tmp.bulletway%4==2)
					{
						tmp.bullet.move(0,3);
						for(int j=0;j<3;j++)
							//打磚或鋼鐵
							if(tmp.bullet.getY()+2<maprows*mapheight)
							{	
								switch(tl1.getCell((tmp.bullet.getX()+j)/mapwidth,(tmp.bullet.getY()+1)/mapheight))
								{
									case(2):
										tl1.setCell((tmp.bullet.getX()+j)/mapwidth,(tmp.bullet.getY()+1)/mapheight,1);
										bullets.removeElementAt(i);
										lm1.remove(tmp.bullet);
										i--;
										j=3;
									break;
									case(3):
										bullets.removeElementAt(i);
										lm1.remove(tmp.bullet);
										i--;
										j=3;
									break;
								}
							}
					}
				
					if(tmp.bulletway%4==3)
					{
						tmp.bullet.move(-3,0);
						for(int j=0;j<3;j++)
							//打磚或鋼鐵
							switch(tl1.getCell((tmp.bullet.getX()-1)/mapwidth,(tmp.bullet.getY()+j)/mapheight))
							{
								case(2):
									tl1.setCell((tmp.bullet.getX()-1)/mapwidth,(tmp.bullet.getY()+j)/mapheight,1);
									bullets.removeElementAt(i);
									lm1.remove(tmp.bullet);
									i--;
									j=3;
								break;
								case(3):
									bullets.removeElementAt(i);
									lm1.remove(tmp.bullet);
									i--;
									j=3;
								break;
							}
					}
				
				  //遇到邊界時(shí)子彈消亡	
			 	 if(tmp.bullet.getY()>maprows*mapheight||tmp.bullet.getY()<0||tmp.bullet.getX()>mapcols*mapwidth||tmp.bullet.getX()<0)
					{
						bullets.removeElementAt(i);
						lm1.remove(tmp.bullet);
						i--;
						break;
					}
				}
			}
	}
	
	private void drawTank()
	{
		for(int i=0;i<tanks.size();i++)
		{
			tanksprite tankclasstmp=(tanksprite)tanks.elementAt(i);
			
			tankclasstmp.tankwaytimeplus();//記錄坦克行走的時(shí)間
			tankclasstmp.bulletwaytimeplus();
			
			if(tankclasstmp.tank.getY()>=0&&tankclasstmp.tank.getY()<=maprows*mapheight&&tankclasstmp.tank.getX()>=0&&tankclasstmp.tank.getX()<=mapcols*mapwidth)
			{
				
				//坦克的方向
				switch(tankclasstmp.tank.getFrame())
				{
					case(0):
						if(canMove(tankclasstmp.tank))
						{
							tankclasstmp.tank.move(0,-1);
							if((!tankclasstmp.bullet.isVisible())&&tankclasstmp.getbulletwaytime())
							{
								tankclasstmp.bullet.setPosition(tankclasstmp.tank.getX()+3,tankclasstmp.tank.getY());
								tankclasstmp.setBulletWay(0);
								tankclasstmp.bullet.setVisible(true);
							}
							if(tankclasstmp.gettankwaytime())
							{
								tankclasstmp.tank.setFrame(randomWay());
							}
						}
						else
							tankclasstmp.tank.setFrame(randomWay());
						
						if(tankclasstmp.bullet.isVisible())
							movebullet(tankclasstmp);//移動(dòng)子彈
						else
							tankclasstmp.setBulletWay(tankclasstmp.tank.getFrame());
							
							
					break;
					
					case(1):
						if(canMove(tankclasstmp.tank))
						{
							tankclasstmp.tank.move(1,0);
							//子彈不可見并且開火后有了一會(huì)兒
							if((!tankclasstmp.bullet.isVisible())&&tankclasstmp.getbulletwaytime())
							{
								tankclasstmp.bullet.setPosition(tankclasstmp.tank.getX()+tankwidth,tankclasstmp.tank.getY()+3);
								tankclasstmp.setBulletWay(1);
								tankclasstmp.bullet.setVisible(true);
							}
							if(tankclasstmp.gettankwaytime())
							{
								tankclasstmp.tank.setFrame(randomWay());
							}
						}
						else
							tankclasstmp.tank.setFrame(randomWay());
						
						if(tankclasstmp.bullet.isVisible())
							movebullet(tankclasstmp);//移動(dòng)子彈
						else
							tankclasstmp.setBulletWay(tankclasstmp.tank.getFrame());
					break;
					
					case(2):
						if(canMove(tankclasstmp.tank))
						{
							tankclasstmp.tank.move(0,1);
							if((!tankclasstmp.bullet.isVisible())&&tankclasstmp.getbulletwaytime())
							{
								tankclasstmp.bullet.setPosition(tankclasstmp.tank.getX()+3,tankclasstmp.tank.getY()+tankheight);
								tankclasstmp.setBulletWay(2);
								tankclasstmp.bullet.setVisible(true);
							}	
							if(tankclasstmp.gettankwaytime())
							{
								tankclasstmp.tank.setFrame(randomWay());
							}
						}
						else
							tankclasstmp.tank.setFrame(randomWay());
							
						if(tankclasstmp.bullet.isVisible())
							movebullet(tankclasstmp);//移動(dòng)子彈
						else
							tankclasstmp.setBulletWay(tankclasstmp.tank.getFrame());
					break;
					
					case(3):
						if(canMove(tankclasstmp.tank))
						{
							tankclasstmp.tank.move(-1,0);
							if((!tankclasstmp.bullet.isVisible())&&tankclasstmp.getbulletwaytime())
							{
								tankclasstmp.bullet.setPosition(tankclasstmp.tank.getX(),tankclasstmp.tank.getY()+3);
								tankclasstmp.setBulletWay(3);
								tankclasstmp.bullet.setVisible(true);
							}	
							if(tankclasstmp.gettankwaytime())
							{
								tankclasstmp.tank.setFrame(randomWay());
							}
						}
						else
								tankclasstmp.tank.setFrame(randomWay());
								

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级大片网址| 亚洲欧美乱综合| 欧美日韩一区二区三区视频| 国产成人精品三级| 国产一区二区三区蝌蚪| 国产一区二区三区观看| 美女在线一区二区| 偷拍自拍另类欧美| 视频一区欧美精品| 蜜桃一区二区三区在线观看| 久久se精品一区精品二区| 亚洲综合在线免费观看| 亚洲精选在线视频| 亚洲综合视频在线观看| 亚洲欧美二区三区| 三级久久三级久久| 欧美激情一区二区三区不卡| 中文字幕一区二区三| 久久在线免费观看| 亚洲国产精品二十页| 欧美xxxxxxxx| 国产欧美日韩综合| 亚洲自拍偷拍综合| 极品销魂美女一区二区三区| 国产成人精品亚洲午夜麻豆| 91色.com| 日韩免费福利电影在线观看| 国产喂奶挤奶一区二区三区| 亚洲欧美一区二区三区极速播放| 亚洲成人一区在线| 国产成人av一区二区三区在线| 99久久99久久精品免费观看| 欧美色网站导航| 国产午夜精品久久久久久免费视 | 日本一道高清亚洲日美韩| 久久国产尿小便嘘嘘尿| 成+人+亚洲+综合天堂| 欧美日韩中文国产| 欧美国产日韩a欧美在线观看| 亚洲一区二区五区| 成人一道本在线| 欧美一区二区三区爱爱| 成人欧美一区二区三区在线播放| 日日夜夜免费精品| 成人高清免费观看| 日韩精品一区二区三区中文精品| 国产精品视频你懂的| 亚洲gay无套男同| 菠萝蜜视频在线观看一区| 欧美一区二区三区在线| 亚洲男人天堂av网| 成人小视频在线观看| 91精品国产综合久久精品app| 综合久久久久久| 激情五月婷婷综合| 4438x成人网最大色成网站| 国产日产欧美精品一区二区三区| 精品久久久久久无| 欧美一二三区在线观看| 一区二区三区电影在线播| 国产精品77777竹菊影视小说| 3atv一区二区三区| 亚洲欧美日韩国产综合在线| 国产高清久久久| 久久久久久9999| 久草热8精品视频在线观看| 欧美日本一区二区| 午夜私人影院久久久久| 91福利国产精品| 亚洲一区在线观看免费| 99r国产精品| 成人免费一区二区三区在线观看| 成人午夜激情视频| 日本一区二区不卡视频| 国产精品中文字幕日韩精品| 欧美成人免费网站| 久久er99精品| 精品免费日韩av| 久久99久久久久久久久久久| 日韩欧美国产成人一区二区| 久久国内精品自在自线400部| 欧美电影免费观看高清完整版在| 免费欧美在线视频| 欧美精品一区在线观看| 国产剧情一区二区| 国产精品国产三级国产普通话99| 成人免费高清在线观看| 亚洲人快播电影网| 欧美少妇一区二区| 免费精品99久久国产综合精品| 欧美v日韩v国产v| 成人看片黄a免费看在线| 综合网在线视频| 欧美日韩1区2区| 国产精品一区在线| 亚洲三级理论片| 8v天堂国产在线一区二区| 激情综合网天天干| 国产精品国产三级国产普通话三级 | 国产精品色婷婷| 在线亚洲一区二区| 麻豆成人在线观看| 国产精品乱码久久久久久| 欧美主播一区二区三区| 毛片不卡一区二区| 亚洲摸摸操操av| 欧美一级久久久| 972aa.com艺术欧美| 偷拍自拍另类欧美| 国产精品无码永久免费888| 色婷婷精品久久二区二区蜜臀av| 爽好多水快深点欧美视频| 国产日韩欧美不卡在线| 欧美性感一区二区三区| 国产精品一品二品| 性欧美大战久久久久久久久| 久久无码av三级| 欧美日韩精品系列| av中文字幕在线不卡| 视频一区在线视频| 亚洲欧美一区二区三区孕妇| 精品国产一区二区国模嫣然| 色婷婷久久久综合中文字幕| 国产一区二区三区免费看| 午夜视频在线观看一区二区三区| 日本一区二区三区四区| 日韩欧美你懂的| 欧美日韩mp4| 日本大香伊一区二区三区| 国产高清精品久久久久| 热久久免费视频| 亚洲高清在线视频| 亚洲人成网站色在线观看| 久久先锋影音av| 日韩欧美亚洲另类制服综合在线| 色综合久久久久综合| 国产999精品久久久久久绿帽| 日本亚洲免费观看| 天天色图综合网| 亚洲国产毛片aaaaa无费看| 国产精品国产三级国产普通话蜜臀| 精品福利在线导航| 欧美一区二区三区四区久久| 欧美色图片你懂的| 91高清视频在线| 欧洲在线/亚洲| 日本乱码高清不卡字幕| 一本色道久久综合亚洲aⅴ蜜桃| 粉嫩aⅴ一区二区三区四区五区| 国内精品伊人久久久久av一坑 | 偷窥少妇高潮呻吟av久久免费| 亚洲人123区| 一区二区三区在线视频观看58| 成人免费视频在线观看| 亚洲天堂精品视频| 亚洲视频一区二区在线观看| 日韩美女视频一区| 一区二区在线电影| 午夜视黄欧洲亚洲| 蜜臀精品久久久久久蜜臀| 美女高潮久久久| 奇米精品一区二区三区在线观看 | 亚洲欧美日韩国产手机在线| 国产精品亲子伦对白| 国产精品久久久久精k8| 成人欧美一区二区三区1314| 中文字幕一区二区三区蜜月| 一区二区三区精密机械公司| 亚洲成人精品在线观看| 蜜臀a∨国产成人精品| 国产成人亚洲综合色影视| 波多野结衣在线一区| 欧美日韩综合在线免费观看| 欧美日本乱大交xxxxx| 久久久亚洲精品石原莉奈| 国产精品国模大尺度视频| 亚洲一线二线三线视频| 免费观看久久久4p| 成人国产精品免费| 欧美日韩在线观看一区二区| 日韩免费一区二区| 国产精品久久久久9999吃药| 亚洲国产综合人成综合网站| 麻豆精品久久精品色综合| 成人激情电影免费在线观看| 在线亚洲一区观看| 久久久久久久性| 亚洲丶国产丶欧美一区二区三区| 极品少妇一区二区三区精品视频 | 成人午夜视频网站| 欧美日韩精品电影| 国产日韩欧美一区二区三区乱码 | 麻豆中文一区二区| jiyouzz国产精品久久| 欧美日韩精品一区二区三区四区| 国产亚洲综合性久久久影院| 亚洲美女视频一区| 国产精品888| 欧美一区二区在线免费观看| 国产精品全国免费观看高清|