⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mygamecanvas.java

📁 自己写的JAVA飞机飞行游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	    {
			return true;
	    }
		else return false;
	}
	private void isInVillageField()
	{
		if(villagefield==null)return;
		for(int i=0;i<villagefield.length;i++)
		{
			if(isInField(villagefield[i]))
			{
				saveTemp[0]=mapWidth;
				saveTemp[1]=mapHeight;
				saveTemp[2]=(villagefield[i][1]-1)*CHECKWIDTH;//myhero.getX();
				saveTemp[3]=(villagefield[i][0]-1)*CHECKHEIGHT;//myhero.getY();
				readVillageMap("villageMap"+villagefield[i][4]);
				status=STATUS_VILLAGE;
				break;
			}
		}
	}
	private void isInVilldoorField()
	{
		if(villdoorfield==null)return;
		for(int i=0;i<villdoorfield.length;i++)
		{
			if(isInField(villdoorfield[i]))
			{
				mapWidth=saveTemp[0];
				mapHeight=saveTemp[1];
				for(int j=0;j<villager.length;j++)
				{
					if(villager[j]!=null)
					{
						lm.remove(villager[j]);
						villager[j] = null;
					}
				}
				if(villLayer!=null)
				{
					lm.remove(villLayer);
					villLayer = null;
				}
				if(villbrLayer!=null)
				{
					lm.remove(villbrLayer);
					villbrLayer = null;
				}
				lm.append(mapLayer);
				lm.append(mapbrLayer);
				myhero.setBarrierLayer(mapbrLayer);
				myhero.setPosition(villdoorfield[i][5]*CHECKWIDTH,villdoorfield[i][4]*CHECKHEIGHT);
				setView(myhero);
				status=STATUS_MOVE;
				break;
			}
		}
	}
	private void isInBattleField()
	{
		if(battlefield==null)return;
		for(int i=0;i<battlefield.length;i++)
		{
			if(isInField(battlefield[i])&&battlefield[i][5]==0)
			{
				saveTemp[0]=mapWidth;
				saveTemp[1]=mapHeight;
				saveTemp[2]=myhero.getX();
				saveTemp[3]=myhero.getY();
				readFightMap("fightMap"+battlefield[i][4]);
				battlefield[i][5]=1;
				break;
			}
		}
	}
	private void waitDo()
	{
		if(enemyP>=enemy.length&&heroP>=hero.length)
		{
			heroP=0;
			enemyP=0;
		}
		if(r.nextInt()%2==0)
		{
			if(enemyP<enemy.length&&enemy[enemyP]!=null&&!enemy[enemyP].getIsDeath())
			{
				curSoldier=enemy[enemyP];
				curSoldier.setCheckMsg(checkMsg);
				status=enemyAction.think(curSoldier,checkMsg,hero);
			}
			enemyP++;
		}
		else
		{
			if(heroP<hero.length&&hero[heroP]!=null&&!hero[heroP].getIsDeath())
			{
				curSoldier=hero[heroP];
				curSoldier.setCheckMsg(checkMsg);
				status=STATUS_FIGHT_MOVE;
			}
			heroP++;
		}
		boolean isEnd = true;
		for(int i=0;i<enemy.length;i++)
		{
			if(enemy[i]!=null)
			{
				if(!enemy[i].getIsDeath())isEnd = false;
			}
		}
		if(isEnd)
		{
			status = STATUS_DIALOG;
			dialog = ftDlgEnd;
			dialogIdx = 0;
			dlgFromFlg = DIALOG_FIGHTEND;
			return;
		}
		isEnd = true;
		for(int i=0;i<hero.length;i++)
		{
			if(hero[i]==null)break;
			if(!hero[i].getIsDeath())isEnd = false;
		}
		if(isEnd)
		{
			//game over
		}
	}
	private boolean moveView(Sprite myMove)
	{
		boolean bool = false;
		int left = viewX + 40;
		int top = viewY +40;
		int right = viewX + getWidth() - 40;
		int down = viewY + getHeight() - 40;
		if(myMove.getX()<left)
		{
			if(viewX > 0)
			{
				viewX -= 4;
				if(viewX<0)viewX=0;
				bool = true;
			}
		}
		if(myMove.getX()+myMove.getWidth()>right)
		{
			if(viewX +getWidth() < mapWidth)
			{
				viewX += 4;
				if(viewX+getWidth()>=mapWidth)
					viewX = mapWidth - getWidth();
				bool = true;
			}
		}
		if(myMove.getY()<top)
		{
			if(viewY > 0)
			{
				viewY -= 4;
				if(viewY<0)viewY = 0;
				bool = true;
			}
		}
		if(myMove.getY()+myMove.getHeight()>down)
		{
			if(viewY +getHeight() < mapHeight)
			{
				viewY += 4;
				if(viewY+getHeight()>=mapHeight)
					viewY = mapHeight - getHeight();
				bool = true;
			}
		}
		return bool;
	}
	protected synchronized void keyPressed(int keyCode)
	{
		if(keyCode == 0) return;
		int gameCode = getGameAction(keyCode);
		if(status==STATUS_FIGHT_MOVE)
		{
			key_FIGHT_MOVE(gameCode);
		}
		else if(status==STATUS_FIGHT_FIGHT)
		{
			key_FIGHT_FIGHT(gameCode);
		}else if(status==STATUS_MENU)
		{
			key_MENU(gameCode);
		}else if(status==STATUS_DIALOG)
		{
			if(++dialogIdx+DIALOGMAXLINE>dialog.length)
			{
				status = statusOld;
				if(dlgFromFlg == DIALOG_FIGHTEND)
				{
					if(!eventKey.equals(""))event();
					dlgFromFlg = 0;
					mapWidth=saveTemp[0];
					mapHeight=saveTemp[1];
					myhero.setPosition(saveTemp[2],saveTemp[3]);
					layer_MOVE();
					setView(myhero);
					status=STATUS_MOVE;
				}
			}
		}
	}
	private void input()
	{
		int key=getKeyStates();
		if((key&UP_PRESSED)!=0)
		{
			myhero.moveUp();
		}
		if((key&DOWN_PRESSED)!=0)
		{
			myhero.moveDown();
		}
		if((key&LEFT_PRESSED)!=0)
		{
			myhero.moveLeft();
		}
		if((key&RIGHT_PRESSED)!=0)
		{
			myhero.moveRight();
		}
	}
	private void key_FIGHT_MOVE(int gameCode)
	{
		if(!curSoldier.getIsHero())return;
		switch(gameCode) {
			case UP:
				curSoldier.moveUp();
				break;
			case LEFT:	
				curSoldier.moveLeft();
				break;
			case DOWN:
				curSoldier.moveDown();
				break;
			case RIGHT:	
				curSoldier.moveRight();
				break;
			case FIRE:
				curSoldier.moveStop();
				showMenu1();
				break;
		}
	}
	private void key_FIGHT_FIGHT(int gameCode)
	{
		if(!curSoldier.getIsHero())return;
		switch(gameCode) {
			case UP:
				curSoldier.moveFightUp();
				break;
			case LEFT:	
				curSoldier.moveFightLeft();
				break;
			case DOWN:
				curSoldier.moveFightDown();
				break;
			case RIGHT:	
				curSoldier.moveFightRight();
				break;
			case FIRE:
				curSoldier.fightDo(enemy,lm);
				status=STATUS_FIGHT_WAIT;
				break;
		}
	}
	private void key_MENU(int gameCode)
	{
		switch(gameCode) {
		case UP:
			menu.moveItemUp();
			break;
		case DOWN:
			menu.moveItemDown();
			break;
		case FIRE:
			if(menu.getCurrentItem()=="fight")
			{
				status=STATUS_FIGHT_FIGHT;
				curSoldier.fightStatus(imgSword);
				layer_FIGHT();
			}else if(menu.getCurrentItem()=="cancel1")
			{
				status=STATUS_FIGHT_WAIT;
			}
		}
	}
	private void showMenu1()
	{
		status = STATUS_MENU;
		menu.initMenu();
		menu.addMenuItem("fight","fight");
		menu.addMenuItem("cancel1","cancel");
		menu.setMenuPosition(true,getWidth(),getHeight(),3);
	}
	private void drawBloodHp()
	{
		for(int i=0;i<hero.length;i++)
		{
			if(hero[i]==null)break;
			hero[i].drawBlood(g,viewX,viewY);
			hero[i].drawHp(g,viewX,viewY);
			hero[i].drawDeath(g,viewX,viewY);
		}
		for(int i=0;i<enemy.length;i++)
		{
			if(enemy[i]!=null)
			{
				enemy[i].drawBlood(g,viewX,viewY);
				enemy[i].drawHp(g,viewX,viewY);
				enemy[i].drawDeath(g,viewX,viewY);
			}
		}
	}
	private void layer_MOVE()
	{
		if(hero!=null)
		{
			for(int i=0;i<hero.length;i++)
			{
				if(hero[i]!=null)lm.remove(hero[i]);
			}
		}
		if(enemy!=null)
		{
			for(int i=0;i<enemy.length;i++)
			{
				if(enemy[i]!=null)
				{
					lm.remove(enemy[i]);
					enemy[i]=null;
				}
			}
		}
		if(fightLayer!=null)
		{
			lm.remove(fightLayer);
			fightLayer = null;
		}
		lm.append(myhero);
        lm.append(mapLayer);
        lm.append(mapbrLayer);
	}
	private void layer_FIGHT()
	{
		lm.remove(myhero);
		lm.remove(mapLayer);
		lm.remove(mapbrLayer);
		if(curSoldier.sptSword!=null)lm.append(curSoldier.sptSword);
		for(int i=0;i<hero.length;i++)
		{
			if(hero[i]==null)break;
			lm.append(hero[i]);
		}
		for(int i=0;i<enemy.length;i++)
		{
			if(enemy[i]==null)break;
			lm.append(enemy[i]);
		}
        lm.append(fightLayer);
	}
	private String readString(String source,String tag)
	{
		String strReturn = "";
		try{
		int i = source.indexOf("<"+tag);
		if(i==-1)return "";
		i = source.indexOf(">",i+1);
		int j = source.indexOf("</"+tag+">",i+1);
		if(j==-1)return "";
		strReturn = source.substring(i+1,j);
		}catch(Exception e){System.out.println("error tag: "+tag);}
		return strReturn;
	}
	private int[] splitStringA(String source,char c)
	{
		Vector vRetrun = new Vector();
		String obj="";
		for(int i=0;i<source.length();i++)
		{
			char a = source.charAt(i);
			if(a!=c)
			{
				obj+=a;
			}
			else
			{
				vRetrun.addElement(obj);
				obj="";
			}
		}
		vRetrun.addElement(obj);
		int [] intRetrun = new int[vRetrun.size()];
		try{
		for(int i=0;i<intRetrun.length;i++)
		{
			intRetrun[i] = Integer.parseInt((String)vRetrun.elementAt(i));
		}
		}catch(Exception e){System.out.println("error:"+source);}
		return intRetrun;
	}
	private String[] splitStringB(String source,char c)
	{
		Vector vRetrun = new Vector();
		String obj="";
		for(int i=0;i<source.length();i++)
		{
			char a = source.charAt(i);
			if(a!=c)
			{
				obj+=a;
			}
			else
			{
				vRetrun.addElement(obj);
				obj="";
			}
		}
		vRetrun.addElement(obj);
		String [] strRetrun = new String[vRetrun.size()];
		for(int i=0;i<strRetrun.length;i++)
		{
			strRetrun[i] = (String)vRetrun.elementAt(i);
		}
		return strRetrun;
	}
	private Image loadImage(String pic)
	{
		Image img=null;
		try{
			img=Image.createImage(pic);
		}catch(Exception exp){exp.printStackTrace();}
		return img;
	}
	private void event()
	{
		if(eventKey.equals("event1"))
		{
			Image imgSource = loadImage("/FightChess/hero1.png");
			Image imgMyHero = Image.createImage(imgSource,CHECKWIDTH*2,0,CHECKWIDTH*2,imgSource.getHeight(),Sprite.TRANS_NONE);
			hero[1] = createSoldier(imgMyHero,true,2,1);
			hero[1].setFightPower(10);
			hero[1].setDefencePwoer(5);
		}
		else if(eventKey.equals("event2"))
		{
			Image imgSource = loadImage("/FightChess/hero1.png");
			Image imgMyHero = Image.createImage(imgSource,CHECKWIDTH*4,0,CHECKWIDTH*2,imgSource.getHeight(),Sprite.TRANS_NONE);
			hero[2] = createSoldier(imgMyHero,true,0,2);
			hero[2].setFightPower(12);
			hero[2].setDefencePwoer(6);
			imgMyHero = Image.createImage(imgSource,CHECKWIDTH*6,0,CHECKWIDTH*2,imgSource.getHeight(),Sprite.TRANS_NONE);
			hero[3] = createSoldier(imgMyHero,true,2,3);
			hero[3].setFightPower(8);
			hero[3].setDefencePwoer(4);
		}
		eventKey = "";
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -