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

📄 swordcanvas.java

📁 j2me手机游戏光盘文件 压缩包里有说明文件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        	/*画雪*/
					for(int i=0;i<snow.length;i++)
					{
						if(snow[i][0]/100==300)
						continue;
						for(int j=0;j<snow[0].length;j++)
        		g1.fillArc(snow[i][j]/100,i*18+Math.abs(snow[i][j])%100,1+getRandom(2),1+getRandom(2),0,360);
        	}
        	break;
        	case 2:
        	break;
        }
        isWeather=false;
	}

	public void setMoveTask()
	{

			isWalking=true;
			moveTask=new TimerTask(this,7);
			timer.schedule(moveTask,0,50);

	}

	public void message(int ii)
	{
		i=0;
		dlgM=null;
		dlgMenu=null;
		isTalking=true;
		curNPC=ii-2;
		switch(ii)
		{
			case 2:
			dlgM=new String[7];
			dlgM[0]="尹风:如今奸臣当道,国家有难,匹夫有责.郭大侠苦守襄阳,为夫决意前往助守襄阳";
			dlgM[1]="晶晶:官人做得对。";
			dlgM[2]="尹风:此去不知何时才能回,娘子要保重身体.";
			dlgM[3]="晶晶:官人一路上要多加小心";
			dlgM[4]="尹风:夫君记住了";
			dlgM[5]="晶晶:......(呜咽)";
			dlgM[6]="晶晶:大事为重,不用挂念我.";
			break;
			case 3:
			dlgM=new String[1];
			dlgM[0]="前方是土匪出没,危害乡民,请不要轻易前往";
			break;
			case 4:
			dlgM=new String[3];
			dlgM[0]="黄药师:你从很远的地方来的,是为了找郭靖吧!";
			dlgM[1]="尹风:是,求仙人指点。";
			dlgM[2]="黄药师:好,随我来";
			break;		
			case 5://
			dlgM=new String[9];
			dlgM[0]="尹风:郭大侠,不才愿助您驻守襄阳!";			
			dlgM[1]="郭靖:现在有一件很重要的事需要你的帮忙。";
			dlgM[2]="尹风:大侠请说!";
			dlgM[3]="郭靖:马上就到冬季,将士们需要100件去寒之物。";
			dlgM[4]="尹风:这个好办,我来的路上经过一个荒岛,上面野兽众多,找点皮毛还不容易。";
			dlgM[5]="郭靖:这样便好,那就托付与你了,这些银两你带上。";
			dlgM[6]="获得银两10000";
			dlgM[7]="郭靖:早去早回。";
			dlgM[8]="郭靖:太好了,有了这些虎皮,整个冬天都不怕了,过了这个冬天就是复我河山之时!";
			break;
			case 6:
			dlgM=new String[1];
			dlgMenu=new String[2];
			dlgM[0]="你希望参加这个勇士的竞技吗?需要收取350两费用,竞技必须是杀死所有野兽才会停止.";
			dlgMenu[0]="参加";
			dlgMenu[1]="离开";
			break;				
			case 7://洪七公
			dlgM=new String[3];
			dlgM[0]="最近老觉得身体不好,本想自己去收集些药引,可是力不从心了,希望你可以帮助我,我将会给你一些报酬";
			dlgM[1]="重新分配技能点需要10000两,交纳费用后你可以将技能点重新分配";
			dlgM[2]="在荒岛收集10粒九花玉露丸,5棵通天草,在大智岛收集10棵千年人参,在蓬莱收集5个灵芝";
			dlgMenu=new String[3];
			dlgMenu[0]="分配技能";
			dlgMenu[1]="接受任务";
			dlgMenu[2]="离开这里";			
			break;
			case 8://船工
			dlgM=new String[1];
			dlgMenu=new String[2];
			dlgMenu[0]="购买";
			dlgMenu[1]="离开";
			dlgM[0]="在这里你找不到比我这更好的船了!船只价格是600两,你赶紧买吧!";
			break;
		}
		if(!dlg[ii-2])
		sn=0;
		else
		if(ii<5)
		sn=dlgM.length-1;
		else
		if(ii==5)
		{
			if(tn[4]==20)
			sn=7;
			else
			sn=6;
		}
		else
		sn=0;
		createDialogImage(dlgM[sn]);
		repaint();
	}

  public void update(Vector string)
  {
		if(sl==6)
		killCount++;
		if(curEl!=15)
		{				
			String temp;
			temp=null;
			boolean out=false;
			string.addElement((String)("获得金钱:"+String.valueOf(nn)));//更新金钱
			string.addElement((String)("获得经验:"+String.valueOf(sn)));//更新经验值
			gold+=nn;

			while(true)
			{
				if(experience+sn>=getExperience(level+1))
				{
					level++;
					skillpoint++;
					out=true;
					energy=20*level+20;
					maxenergy=energy;
					maxlife=level*level+10*level+60;
					life=maxlife;
					basicPower=5*level+2;
					totalPower=basicPower+addPdP*basicPower/100+addPower;
				}
				else
				break;
			}
			experience+=sn;
			if(out)
			string.addElement((String)("人物等级提升到第"+String.valueOf(level)+"级"));//更新等级		

			for(int iii=0;iii<6;iii++)
			{
				if(weapon[iii]==9)
				{
					int ii=getRandom(100);
					switch(curEl)
					{
						case 2:
						if(ii<=2&&ii>=0&&!hasWeapon(0))
						{
							weapon[iii]=0;
							temp="承影剑";
						}
						else
						if(ii<=6&&ii>=3&&!hasWeapon(3))
						{	
							weapon[iii]=3;
							temp="干将莫邪剑";
						}
						break;
						case 3:
						if(ii<=5&&ii>=0&&!hasWeapon(0))
						{
							weapon[iii]=0;
							temp="承影剑";
						}
						else
						if(ii<=10&&ii>=6&&!hasWeapon(3))
						{
							weapon[iii]=3;
							temp="干将莫邪剑";
						}
						else
						if(ii<=14&&ii>=11&&!hasWeapon(6))
						{
							weapon[iii]=6;
							temp="赤霄剑";
						}
						break;
						case 4:
						if(ii<=7&&ii>=0&&!hasWeapon(0))
						{
							weapon[iii]=0;
							temp="承影剑";
						}
						else
						if(ii<=11&&ii>=8&&!hasWeapon(1))
						{
							weapon[iii]=1;
							temp="纯钧剑";
						}
						else
						if(ii<=18&&ii>=12&&!hasWeapon(3))
						{
							weapon[iii]=3;
							temp="干将莫邪剑";
						}
						else
						if(ii<=25&&ii>=19&&!hasWeapon(6))
						{
							weapon[iii]=6;
							temp="赤霄剑";
						}
						break;
						case 5:
						if(ii<=5&&ii>=0&&!hasWeapon(1))
						{
							weapon[iii]=1;
							temp="纯钧剑";
						}
						else
						if(ii<=15&&ii>=6&&!hasWeapon(3))
						{
							weapon[iii]=3;
							temp="干将莫邪剑";
						}
						else
						if(ii<=18&&ii>=16&&!hasWeapon(4))
						{
							weapon[iii]=4;
							temp="龙渊剑";
						}
						else
						if(ii<=27&&ii>=19&&!hasWeapon(6))
						{
							weapon[iii]=6;
							temp="赤霄剑";
						}					
						break;
						case 6:
						if(ii<=8&&ii>=0&&!hasWeapon(1))
						{
							weapon[iii]=1;
							temp="纯钧剑";
						}
						else
						if(ii<=14&&ii>=9&&!hasWeapon(4))
						{
							weapon[iii]=4;
							temp="龙渊剑";
						}
						else
						if(ii<=17&&ii>=15&&!hasWeapon(7))
						{
							weapon[iii]=7;
							temp="湛泸剑";
						}			
						break;
						case 7:
						if(ii<=10&&ii>=0&&!hasWeapon(1))
						{
							weapon[iii]=1;
							temp="纯钧剑";
						}
						else
						if(ii<=18&&ii>=11&&!hasWeapon(4))
						{
							weapon[iii]=4;
							temp="龙渊剑";
						}
						else
						if(ii<=23&&ii>=19&&!hasWeapon(7))
						{
							weapon[iii]=7;
							temp="湛泸剑";
						}				
						break;
						case 8:
						if(ii<=3&&ii>=0&&!hasWeapon(2))
						{
							weapon[iii]=2;
							temp="鱼肠剑";
						}
						else
						if(ii<=13&&ii>=4&&!hasWeapon(4))
						{
							weapon[iii]=4;
							temp="龙渊剑";
						}
						else
						if(ii<=19&&ii>=14&&!hasWeapon(7))
						{
							weapon[iii]=7;
							temp="湛泸剑";
						}				
						break;
						case 9:
						if(ii<=5&&ii>=0&&!hasWeapon(2))
						{
							weapon[iii]=2;
							temp="鱼肠剑";
						}
						else
						if(ii<=8&&ii>=6&&!hasWeapon(5))
						{
							weapon[iii]=5;
							temp="泰阿剑";
						}
						else
						if(ii<=15&&ii>=12&&!hasWeapon(8))
						{
							weapon[iii]=8;
							temp="轩辕剑";
						}					
						break;
						case 10:
						if(ii<=7&&ii>=0&&!hasWeapon(2))
						{
							weapon[iii]=2;
							temp="鱼肠剑";
						}
						else
						if(ii<=13&&ii>=8&&!hasWeapon(5))
						{
							weapon[iii]=5;
							temp="泰阿剑";
						}
						else
						if(ii<=19&&ii>=14&&!hasWeapon(8))
						{
							weapon[iii]=8;
							temp="轩辕剑";
						}						
						break;
						default:
						break;
					}
					break;
				}
			}
			if(temp!=null)
			{
				string.addElement((String)("获得武器:"+temp));
			}

			if(isTask&&sl!=6&&temp==null)
			{
				temp=null;
				int ii;
				ii=getRandom(100);
				if(ii<30)
				{
					switch(curEl)
					{
						case 4://豺
						if(tn[0]<10)
						{
							tn[0]++;
							temp="九花玉露丸";
						}
						break;
						case 5://狼
						if(tn[1]<5)
						{
							tn[1]++;
							temp="通天草";
						}
						break;
						case 6://虎
						if(tn[4]<20&&isTask2)
						{
							tn[4]++;
							temp="虎皮";
						}
						break;
						case 9://僵尸将军
						if(tn[2]<10)
						{
							tn[2]++;
							temp="千年人参";
						}
						break;
						case 10://Boss
						if(tn[3]<5)
						{
							tn[3]++;
							temp="灵芝";
						}
						break;
						default:
						break;
					}
				}
				if(temp!=null)
				{
					string.addElement((String)("获得任务物品:"+temp));
				}
			}
			temp=null;
			if(sl==6&&killCount!=10)
			{
				string.addElement((String)("还须进行"+toString(10-killCount)+"场战斗"));
			}							
			if(sl==6&&killCount==10)
			{
				string.addElement((String)("获得银子10000两"));
			}					
		}
		else
		{
			isGameOver = true;


		}			  	
  }

	public void createDialogImage(String s)
	{
		strDlg=s;
		dlgn=10;
		imgDlg=null;
		int dw = dlgn*15;
		int dh = ((s.length()-1)/dlgn+1)*20+3;
		if(dlgMenu!=null)
		dh = ((s.length()-1)/dlgn+1)*20+20;
		imgDlg=Image.createImage(dw,dh);
		if(dlgMenu!=null)//显示对话菜单
		imgDlg=Image.createImage(dw,dh);		
		g1=imgDlg.getGraphics();
		g1.setFont(MenuCanvas.mFont);
		g1.setColor(0x9B7319);
		g1.fillRect(0,0,dw,dh);
		g1.setColor(0xffffff);
		g1.drawRect(0,0,dw-1,dh-1);
		g1=null;
	}

	public void drawDialog(Graphics g)
	{
		g.setColor(0xffffff);
		g.drawImage(imgDlg,w/2-imgDlg.getWidth()/2,h/2-imgDlg.getHeight()/2,0);
		for(int i=0;i<strDlg.length()/dlgn+1;i++)
		{
			if(i==strDlg.length()/dlgn)
			g.drawString(strDlg.substring(i*dlgn),w/2-imgDlg.getWidth()/2+2,h/2-imgDlg.getHeight()/2+2+i*20,0);
			else
			g.drawString(strDlg.substring(i*dlgn,i*dlgn+dlgn),w/2-imgDlg.getWidth()/2+2,h/2-imgDlg.getHeight()/2+2+i*20,0);
		}
		if(dlgMenu!=null)//显示对话菜单
		{

			MenuCanvas.ge.drawClipImage(g,MenuCanvas.imgArrow,60,168,5,10,0,0);
			MenuCanvas.ge.drawClipImage(g,MenuCanvas.imgArrow,196-45,168,5,10,5,0);		
			g.setColor(-1);
			g.drawString(dlgMenu[dlgMenuChoose],108,167,g.HCENTER|g.TOP);				
		}
	}		

	int getEnemyNum()
	{
		int ii=getRandom(1000);
		if(ii<400)
		return(0);
		else
		if(ii<600)
		return(1);
		else
		if(ii<800)
		return(2);
		else
		if(ii<950)
		return(3);
		else
		return(4);
		//return(0);
	}
	/*判断角色移动方向上下一步的标志位*/
	int getMapMark()
	{
		int r=0;
		switch(direction/3)
		{
			case 1://向下
			if(y<H[sl]*16-32)
			r=mapArray[((y+31)/16+1)*W[sl]+x/16]/100;
			break;
			case 0://向左
			if(x!=0)
			r=mapArray[(y+31)/16*W[sl]+x/16-1]/100;
			break;
			case 3://向右
			if(x!=W[sl]*16-16)
			r=mapArray[(y+31)/16*W[sl]+x/16+1]/100;
			break;
			case 2://向上
			if(y!=0)
			r=mapArray[((y+31)/16-1)*W[sl]+x/16]/100;
			break;
		}
		return r;
	}					

	public static void createImage()
	{
		try
		{
			screen=null;

			screenPic=Image.createImage("/screen.png");		
			imgProBG=Image.createImage("/proBg.png");
			imgState=Image.createImage("/state.png");
			sword=new Image[9];
			for(int i=0;i<9;i++)
			{
				sword[i]=Image.createImage("/sword"+String.valueOf(i)+".png");
			}
			switch(sl)
			{
				case 0://城郊
				screen=new Image[29];
				for(int ii=0;ii<13;ii++)
				{
					screen[ii+16]=Image.createImage(16,16);
					g1=screen[ii+16].getGraphics();
					g1.drawImage(screenPic,-(ii+16)%10*16,-(ii+16)/10*16,0);
					g1=null;
				}
				break;
				case 1:
				screen=new Image[20];
				for(int ii=0;ii<4;ii++)
				{
					screen[ii+16]=Image.createImage(16,16);
					g1=screen[ii+16].getGraphics();
					g1.drawImage(screenPic,-(ii+29)%10*16,-(ii+29)/10*16,0);
					g1=null;
				}
				break;
				case 2:
				screen=new Image[30];
				for(int ii=0;ii<14;ii++)
				{
					screen[ii+16]=Image.createImage(16,16);
					g1=screen[ii+16].getGraphics();
					g1.drawImage(screenPic,-(ii+33)%10*16,-(ii+33)/10*16,0);
					g1=null;
				}
				break;
				case 3:
				screen=new Image[37];
				for(int ii=0;ii<21;ii++)
				{
					screen[ii+16]=Image.createImage(16,16);
					g1=screen[ii+16].getGraphics();
					g1.drawImage(screenPic,-(ii+47)%10*16,-(ii+47)/10*16,0);
					g1=null;
				}
				break;				
				case 4:
				screen=new Image[25];
				for(int ii=0;ii<9;ii++)
				{

⌨️ 快捷键说明

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