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

📄 e070f72a48cf001216b0addf11818cf9

📁 一些手机游戏的例子
💻
📖 第 1 页 / 共 5 页
字号:
				if(x!=0)
				sc[(y+31)/16*W[sl]+x/16-1]=sc[(y+31)/16*W[sl]+x/16];
				break;
				case 3://向右
				if(x!=W[sl]*16-16)
				sc[(y+31)/16*W[sl]+x/16+1]=sc[(y+31)/16*W[sl]+x/16];
				break;
				case 2://向上
				if(y!=0)
				sc[((y+31)/16-1)*W[sl]+x/16]=sc[(y+31)/16*W[sl]+x/16];
				break;
			}
			repaint();
		}
		else
		if(c()==97)//大Boss
		{
			if(tn[0]==10&&tn[1]==5&&tn[2]==10&&tn[3]==5&&tn[4]==20)
			fi(1,15);
			else
			{
				tm=true;
				repaint();
			}
		}
		else
		{	
			walk=true;
			mo=new TI(this,7);
			ti.schedule(mo,0,150);
		}
	}
	/*对话控制*/
	public void message(int ii)
	{
		i=0;
		dlgM=null;
		me=true;
		curnpc=ii-2;
		switch(ii)
		{
			case 2://母亲
			dlgM=new String[5];
			dlgM[0]="景鸿:孩儿此去不知何时才能回,母亲要保重身体.";
			dlgM[1]="母亲:我儿一路上要多加小心";
			dlgM[2]="景鸿:孩儿记住了";
			dlgM[3]="母亲:......(呜咽)";
			dlgM[4]="母亲:大事为重,不用挂念我.";
			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[8];
			dlgM[0]="徐承志:现在有一件很重要的事需要你的帮忙。";
			dlgM[1]="景鸿:将军请说!";
			dlgM[2]="徐承志:马上就到冬季,将士们需要100件去寒之物。";
			dlgM[3]="景鸿:这个好办,我来的路上经过一个荒岛,上面野兽众多,找点皮毛还不容易。";
			dlgM[4]="徐承志:这样便好,那就托付与你了,这些银两你带上。";
			dlgM[5]="获得银两10000";
			dlgM[6]="徐承志:早去早回。";
			dlgM[7]="徐承志:太好了,有了这些虎皮,整个冬天都不怕了,过了这个冬天就是我们讨伐武后,复我河山之时!";
			break;
			case 6://竞技官
			dlgM=new String[1];
			dlgM[0]="你希望参加这个勇士的竞技吗?需要收取350两费用,竞技必须是杀死所有野兽才会停止  参加 离开";
			break;				
			case 7://多九公
			dlgM=new String[4];
			dlgM[0]="最近老觉得身体不好,本想自己去收集些药引,可是力不从心了,希望你可以帮助我,我将会给你一会报酬";
			dlgM[1]="  分配技能     任务      离开";
			dlgM[2]="重新分配技能点需要10000两,交纳费用后你可以将技能点重新分配  马上分配    下次再说";
			dlgM[3]="在荒岛收集10棵鹤灵草,5颗狼牙,在女儿国收集10棵米云香,在蓬莱收集5个雪岩";
			break;
			case 8://船工
			dlgM=new String[1];
			dlgM[0]="在京城你找不到比我这更好的船了!船只价格是600两,你赶紧买吧! 购买 离开";
			break;
		}
		if(!dlg[ii-2])//如果没有和某个NPC对完话,则每次对话从第一句开始。
		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;
		createDlgPic(dlgM[sn],8);
		repaint();
	}
	/*创建对话框图片*/
	public void createDlgPic(String s,int n)
	{
		dlgm=s;
		dlgn=n;
		dlgpic=null;
		dlgpic=Image.createImage(n*17,((s.length()-1)/n+1)*20+3);
		g1=dlgpic.getGraphics();
		g1.setFont(Loading.myfont);
		g1.setColor(153,117,26);
		g1.fillRect(0,0,n*17,((s.length()-1)/n+1)*20+3);
		g1.setColor(0xffffff);
		g1.drawRect(0,0,n*17-1,((s.length()-1)/n+1)*20+2);
		g1=null;
	}
	/*怪物数量Check*/
	int chn()
	{
		int ii=rR(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 c()
	{
		int r=0;
		switch(dr/3)
		{
			case 1://向下
			if(y<H[sl]*16-32)
			r=sc[((y+31)/16+1)*W[sl]+x/16]/100;
			break;
			case 0://向左
			if(x!=0)
			r=sc[(y+31)/16*W[sl]+x/16-1]/100;
			break;
			case 3://向右
			if(x!=W[sl]*16-16)
			r=sc[(y+31)/16*W[sl]+x/16+1]/100;
			break;
			case 2://向上
			if(y!=0)
			r=sc[((y+31)/16-1)*W[sl]+x/16]/100;
			break;
		}
		return r;
	}					
	/*构建屏幕上的游戏图片*/
	public static void cI()
	{
		try
		{
			screen=null;
			/*创建场景图*/
			screenPic=Image.createImage("/screen.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++)
				{
					screen[ii+16]=Image.createImage(16,16);
					g1=screen[ii+16].getGraphics();
					g1.drawImage(screenPic,-(ii+68)%10*16,-(ii+68)/10*16,0);
					g1=null;
				}
				break;				
				case 5://军营
				screen=new Image[22];
				for(int ii=0;ii<6;ii++)
				{
					screen[ii+16]=Image.createImage(16,16);
					g1=screen[ii+16].getGraphics();
					g1.drawImage(screenPic,-(ii+77)%10*16,-(ii+77)/10*16,0);
					g1=null;
				}
				break;				
				case 6://竞技场
				screen=new Image[19];
				for(int ii=0;ii<3;ii++)
				{
					screen[ii+16]=Image.createImage(16,16);
					g1=screen[ii+16].getGraphics();
					g1.drawImage(screenPic,-(ii+83)%10*16,-(ii+83)/10*16,0);
					g1=null;
				}
				break;
				default:
				break;				
			}
			for(int ii=0;ii<16;ii++)
			{
				screen[ii]=Image.createImage(16,16);
				g1=screen[ii].getGraphics();
				g1.drawImage(screenPic,-ii%10*16,-ii/10*16,0);
				g1=null;
			}			
			screenPic=null;
			/*创建精灵图*/
			if(NPCPic==null)
			NPCPic=Image.createImage("/sp.png");
			if(spic==null)
			{
				spic=new Image[6];
				for(int i=0;i<6;i++)
				spic[i]=Image.createImage("/spic/"+String.valueOf(i)+".png");
			}
			if(poc==null)
			poc=Image.createImage("/poc.png");
			if(atpic==null)
			atpic=Image.createImage("/an.png");
		}
		catch(java.io.IOException ioe)
		{
		}
	}		
	/*返回某级别的经验值*/
	int m(int s)
	{
		return(s*(s+1)*(2*s+1)*25/6);
	}
	/*地图切换*/
	public void cm(int l)
	{
		tm=false;
		sl=l;
		x=startx[sl];
		y=starty[sl];
		if(x>=w/2)
		{
			if(x<=W[sl]*16-w/2)
			x0=x-w/2;
			else
			x0=W[sl]*16-w;
		}
		else
		x0=0;
		if(y>=h/2)
		{
			if(y<=H[sl]*16-h/2)
			y0=y-h/2;
			else
			y0=H[sl]*16-h;
		}
		else
		y0=0;		
		is=getClass().getResourceAsStream("/Screen"+ts(sl)+".txt");
		rS(is);//读取指定的地图索引
		if(sl!=6)
		{
			is=getClass().getResourceAsStream("/sp"+ts(sl)+".txt");
			rSp(is);//读取精灵索引
		}
		changeMap=null;
		changeMap=new TI(this,13);
		ti.schedule(changeMap,0,200);
		change=true;
	}
	/*将移动计时器取消*/
	void cancelMove()
	{
		mo.cancel();
		mo=null;
	}
	void cancelATW()
	{
		atw.cancel();
		while(atw.cancel())
		{
		}
		atw=null;
	}
	/*角色移动 移动方式中1表示迈左腿,2表示迈右腿*/
	public void move()
	{
		System.out.println("move");
		if(dr%3==2||dr%3==0)
		{
			if(c()>1&&c()<10)//对话NPC出现的Tile
			{
				if(c()==4)
				{
					if(tn[0]==10&&tn[1]==5&&tn[2]==10&&tn[3]==5)
					message(4);
				}
				else
				message(c());
				cancelMove();
				dr=dr/3*3;
				repaint();
			}	
			else
			if(c()==99)//场景出入口
			{
				if(boat)
				{
					tm=true;
					i=0;
				}
				else
				tip="请去找船工买船";
				cancelMove();
				dr=dr/3*3;				
				repaint();
			}
			else
			if(c()==97)//大Boss
			{
				cancelMove();
				if(tn[0]==10&&tn[1]==5&&tn[2]==10&&tn[3]==5&&tn[4]==20)
				fi(1,15);
				else
				{
					tm=true;
					dr=dr/3*3;
					repaint();
				}		
			}
			else
			if(c()==98)//宝箱
			{
				cancelMove();
				int ii=rR(2*sl+1)*10;
				gold+=ii*(2*sl+1);
				tip=ii>0?"获得"+ts(ii*(2*sl+1))+"两银子":"一无所获";
				switch(dr/3)
				{
					case 1://向下
					if(y<H[sl]*16-32)
					sc[((y+31)/16+1)*W[sl]+x/16]=sc[(y+31)/16*W[sl]+x/16];
					break;
					case 0://向左
					if(x!=0)
					sc[(y+31)/16*W[sl]+x/16-1]=sc[(y+31)/16*W[sl]+x/16];
					break;
					case 3://向右
					if(x!=W[sl]*16-16)
					sc[(y+31)/16*W[sl]+x/16+1]=sc[(y+31)/16*W[sl]+x/16];
					break;
					case 2://向上
					if(y!=0)
					sc[((y+31)/16-1)*W[sl]+x/16]=sc[(y+31)/16*W[sl]+x/16];
					break;
				}
				repaint();				
			}		
			else
			if(c()>10&&c()<21)//Check怪
			{
				fi(chn(),c()-10);
				if(!atm)//没有怪出现
				{
					dr++;
					if(dr%3==0)
					dr-=2;
					switch(dr)
					{
//						case 7://向上1
//						y-=speed;
//						if(y0>0&&y-y0<=64)
//						y0-=speed;
//						repaint();
//						break;
//						case 4://向下1
//						y+=speed;
//						if(y0<128&&y-y0>=48)
//						y0+=speed;
//						repaint();
//						break;
//						case 1://向左1
//						x-=speed;
//						if(x0>0&&x-x0<=64)
//						x0-=speed;
//						repaint();
//						break;
//						case 10://向右1
//						x+=speed;
//						if(x0<24*16&&x-x0>=64)
//						x0+=speed;
//						repaint();
//						break;
//						default://静止状态
//						repaint();
//						break;
						case 7://向上1
						y-=speed;
						if(y0>0&&y-y0<=h/2)
						y0-=speed;
						repaint();
						break;
						case 4://向下1
						y+=speed;
						if(y0<(H[sl]-(h+15)/16)*16&&y-y0>=h/2)
						y0+=speed;
						repaint();
						break;
						case 1://向左1
						x-=speed;
						if(x0>0&&x-x0<=w/2)
						x0-=speed;
						repaint();
						break;
						case 10://向右1
						x+=speed;
						if(x0<(W[sl]-w/16)*16&&x-x0>=w/2)
						x0+=speed;
						repaint();
						break;
						default://静止状态
						repaint();
						break;
					}				
				}
				else
				cancelMove();
			}
			else
			if(c()==1)
			{
				dr++;
				if(dr%3==0)
				dr-=2;
				switch(dr)
				{
					case 7://向上1
					y-=speed;
					if(y0>0&&y-y0<=h/2)
					y0-=speed;
					repaint();
					break;
					case 4://向下1
					y+=speed;
					if(y0<(H[sl]-(h+15)/16)*16&&y-y0>=h/2)
					y0+=speed;
					repaint();
					break;
					case 1://向左1
					x-=speed;
					if(x0>0&&x-x0<=w/2)
					x0-=speed;
					repaint();
					break;
					case 10://向右1
					x+=speed;
					if(x0<(W[sl]-w/16)*16&&x-x0>=w/2)
					x0+=speed;
					repaint();
					break;
					default://静止状态
					repaint();
					break;
				}
			}
			else
			{
				mo.cancel();
				mo=null;
				dr=dr/3*3;
				repaint();
			}			
		}
		else	
		{
			dr++;
			switch(dr)
			{
				case 7://向上1
				y-=speed;
				if(y0>0&&y-y0<=h/2)
				y0-=speed;
				repaint();
				break;
				case 8://向上2
				y-=speed;
				if(y0>0&&y-y0<=h/2)
				y0-=speed;
				repaint();
				if(!walk)
				cancelMove();
				break;
				case 4://向下1
				y+=speed;
				if(y0<(H[sl]-(h+15)/16)*16&&y-y0>=h/2)
				y0+=speed;
				repaint();
				break;
				case 5://向下2
				y+=speed;
				if(y0<(H[sl]-(h+15)/16)*16&&y-y0>=h/2)
				y0+=speed;
				repaint();
				if(!walk)
				cancelMove();
				break;
				case 1://向左1
				x-=speed;
				if(x0>0&&x-x0<=w/2)
				x0-=speed;
				repaint();
				break;
				case 2://向左2
				x-=speed;
				if(x0>0&&x-x0<=w/2)
				x0-=speed;
				repaint();
				if(!walk)
				cancelMove();
				break;
				case 10://向右1
				x+=speed;
				if(x0<(W[sl]-w/16)*16&&x-x0>=w/2)
				x0+=speed;
				repaint();
				break;
				case 11://向右2
				x+=speed;
				if(x0<(W[sl]-w/16)*16&&x-x0>=w/2)
				x0+=speed;
				repaint();
				if(!walk)
				cancelMove();
				break;
				default://静止状态
				repaint();
				break;
			}
		}
	}
	/*技能攻击效果*/
	void sat(int k)
	{
		atw=null;
		switch(k)
		{
			case 0://火球
			if(m>=10*s[0])
			{
				atw=new TI(this,4);
				m-=10*s[0];

⌨️ 快捷键说明

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