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

📄 mainpit.java

📁 一个J2ME SLG游戏范例
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
			   					switch(targetstate)
			   					{
			   						case 0://选择目标
			   							if(currentactstate == 1)//目标获得焦点
			   							{
				   							for(int i = 0; i<= MAP_MAX_HEIGHT; i++)
											{
												for(int j = 0; j <= MAP_MAX_WIDTH; j++)
												{
													move[i][j] = -1;
												}
											}
											fmove(currentactMX, currentactMY, currentactmovearea + mappos[map[currentactMY][currentactMX]][currentactkind]);
				   							currentactstate = 2;
				   							targetstate = 1;
				   							showmovearea = true;
				   							chooseact(currentact);//选中目标
			   							}
			   							else if(currentactstate == 0)
			   							{
			   								CurrentMenu = 0;
			   								CurrentScene = 2;
			   								MenuFocus = 0;
			   							}
			   						break;
			   						case 1:
			   							if(movejudge(cursorMX,cursorMY))
			   							{
			   								smove(cursorMX,cursorMY);//寻路
			   								targetSX = currentactSX;
			   								targetSY = currentactSY;
			   								moveaction = true;
			   								showmovearea = false;
			   							}
			   						break;
			   						/*
			   						case 2:
			   							currentactSX = targetSX;
			   							currentactSY = targetSY;
			   							currentactMX = currentactSX + x;
			   							currentactMY = currentactSY + y;
			   							infoact[currentact][1] = currentactMX;
			   							infoact[currentact][2] = currentactMY;
			   							currentactmovex = 0;
			   							currentactmovey = 0;
			   							targetstate = 0;
			   							currentactstate = 0;
			   						break;
			   						*/
			   					}
			   				break;
			   				case 3:
			   					switch(targetstate)
			   					{
			   						case 1:
			   							currentactstate = 0;
			   							targetstate = 0;
			   							showmovearea = false;
			   							cursorSX = currentactSX;
			   							cursorSY = currentactSY;
			   						break;
			   						/*case 2:
			   							targetstate = 1;
			   							currentactmovex = 0;
			   							currentactmovey = 0;
			   							targetSX = currentactSX;
			   							targetSY = currentactSY;
			   						break;*/
			   					}
			   				break;
			   			}
			   		break;
			   		case 2://菜单选择
			   			switch(kC)
			   			{
			   				case 2://上键
			   					MenuFocus--;
			   					if(MenuFocus < 0)
			   					{
			   						MenuFocus = MenuInfo[CurrentMenu] - 1;
			   					}
			   				break;
			   				case 8://下键
			   					MenuFocus++;
			   					if(MenuFocus > MenuInfo[CurrentMenu] - 1)
			   					{
			   						MenuFocus = 0;
			   					}
			   				break;
			   				case 5://左软,中,键
			   					switch(CurrentMenu)
			   					{
			   						case 0://系统菜单
			   							switch(MenuFocus)
			   							{
			   								case 2://中断
			   									MenuFocus = 0;
			   									STATE = 1;
			   								break;
			   							}
			   						break;
			   						case 1://攻击选择菜单
			   							if(MenuFocus == MenuInfo[CurrentMenu] - 1)//待机
			   							{
					   						CurrentScene = 1;
							   				currentactSX = targetSX;
							   				currentactSY = targetSY;
							   				currentactMX = currentactSX + x;
							   				currentactMY = currentactSY + y;
							   				infoact[currentact][1] = currentactMX;
							   				infoact[currentact][2] = currentactMY;
							   				currentactmovex = 0;
							   				currentactmovey = 0;
							   				targetstate = 0;
							   				currentactstate = 0;
							   			}
							   			else if(MenuFocus == MenuInfo[CurrentMenu] - 2)//攻击
							   			{
							   				CurrentScene = 3;
							   				currentactSX = targetSX;
							   				currentactSY = targetSY;
							   				currentactMX = currentactSX + x;
							   				currentactMY = currentactSY + y;
							   				infoact[currentact][1] = currentactMX;
							   				infoact[currentact][2] = currentactMY;
							   				currentactmovex = 0;
							   				currentactmovey = 0;
							   			}
			   						break;

			   					}
			   				break;
			   				case 3://右软键
			   					switch(CurrentMenu)
			   					{
			   						case 0:
			   							CurrentScene = 1;
			   						break;
			   						case 1:
			   							CurrentScene = 1;
			   							targetstate = 1;
			   							showmovearea = true;
			   							currentactmovex = 0;
			   							currentactmovey = 0;
			   							targetSX = currentactSX;
			   							targetSY = currentactSY;
			   							cursorSX = currentactSX;
			   							cursorSY = currentactSY;
			   						break;
			   					}
			   				break;
			   			}
			   		break;
			   		case 3://攻击模式
			   			switch(kC)
			   			{
			   				case 2:
			   				case 4:
			   					currentatk--;
			   					if(currentatk == 0)
			   					{
			   						currentatk = atktarget[0];
			   					}
			   				break;
			   				case 8:
			   				case 6:
			   					currentatk++;
			   					if(currentatk > atktarget[0])
			   					{
			   						currentatk = 1;
			   					}
			   				break;
			   				case 5:
			   					switch(targetstate)
			   					{
			   						case 1:
			   							targetstate = 2;
			   						break;
			   						case 2:
			   							targetstate = 3;
			   						break;
			   					}
			   				break;
			   				case 3:
			   					CurrentScene = 2;
			   					targetstate = 1;
			   				break;
			   			}
			   			System.out.println("  " + currentatk + "  " + atktarget[currentatk]);
			   		break;
			   	}
			   	break;
	   	}
	}
	/*
	//小图在图片中的坐标(ix,iy)
	//绘制在屏幕上的坐标(sx,xy)
	public void paintImage(Graphics g,Image pic, int ix, int iy, int width, int height,int sx, int sy)
	{
		g.setClip(sx,sy,width,height);
		g.drawImage(pic, sx - ix, sy - iy, g.LEFT|g.TOP);
		g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
	}

	*/

	/*
	//读取静态信息
	private void readStaticInfo()
	{
		java.io.InputStream is = null;
		try
		{
			is = getClass().getResourceAsStream("/info/staticinfo.txt");
			if (is != null)
			{
		    	readstatic(is);
		    	is.close();
			}
			else
			{
		   		System.out.println("load static wrong");
			}
		}
		catch (Exception e)
		{
			System.out.println("static ");
		}
	}
	//加载静态信息
	public void readstatic(InputStream is)
	{
		try
		{
			int c;
			int actpicnum;//人物图片类型数目
			int mappicnum;//地图图片类型数目
			int vocationnum;//职业数目
			//职业属性
			//System.out.println("vocation");
			c = is.read();
			vocationnum = c;
			vocation = new byte[vocationnum][6];
			for(int ih = 0; ih < vocationnum; ih++)
			{
				for(int iw = 0; iw < 6; iw++)
				{
					c = is.read();
					vocation[ih][iw] = (byte)c;
				}
			}
			//System.out.println("0");
			//图片偏移
			c = is.read();
			actpicnum = c;
			actorpos = new byte[actpicnum * 12][2];
			for(int ih = 0; ih < actpicnum * 12; ih++)
			{
				for(int iw = 0; iw < 2; iw++)
				{
					c = is.read();
					if(c >= 128)
					{
						c = 128 - c;
					}
					actorpos[ih][iw] = (byte)c;
				}
			}
			//System.out.println("1");
			//图片位差
			actpic = new byte[2][6];
			for(int ih = 0; ih < 2; ih++)
			{
				for(int iw = 0; iw < 6; iw++)
				{
					c = is.read();
					actpic[ih][iw] = (byte)c;
					//System.out.print(" "+c);
				}
				//System.out.println("");
			}
			//System.out.println("2");
			//地形修正
			c = is.read();
			mappicnum = c;
			maprevise = new byte[2][mappicnum];
			for(int ih = 0; ih < 2; ih++)
			{
				for(int iw = 0; iw < mappicnum; iw++)
				{
					c = is.read();
					maprevise[ih][iw] = (byte)c;
					//System.out.print(" "+c);
				}
				//System.out.println("");
			}
			//System.out.println("3");
			//地形移动力修正
			mappos = new byte [mappicnum][actpicnum];
			for(int ih = 0; ih < mappicnum; ih++)
			{
				for(int iw = 0; iw < actpicnum; iw++)
				{
					c = is.read();
					mappos[ih][iw] = (byte)c;
					//System.out.print(" "+c);
				}
				//System.out.println("");
			}
			//System.out.println("4");
			c = is.read();
			bluenum = (byte)c;
			//初始蓝方职业,等级,五行属性,
			for(int ih = 0; ih < bluenum; ih++)
			{
				c = is.read();
				blueinfo[ih][0] = (byte)c;//职业
				c = is.read();
				blueinfo[ih][3] = (byte)c;//等级
				c = is.read();
				blueinfo[ih][4] = (byte)c;//五行属性
			}
		}
		catch(Exception e)
		{
			System.out.println(e+"读取静态信息失败");
		}

	}

	//按章节读入动态信息
	private void readChapterInfo(byte chapter)
	{
		java.io.InputStream is = null;
		try
		{
			is = getClass().getResourceAsStream("/info/Chapter"+gameChapter+".txt");
			if (is != null)
			{
		    	readchapter(is,chapter);
		    	is.close();
			}
			else
			{
		   		System.out.println("load Chapter wrong");
			}
		}
		catch (Exception e)
		{
			System.out.println("Chapter ");
		}
	}

	//加载动态信息
	public void readchapter(InputStream is,byte chapter)
	{
		try
		{
			//System.out.println("6666666666");
			int c;
			c = is.read();
			MAP_MAX_WIDTH = c - 1;//地图宽
			//System.out.println("MAP_MAX_WIDTH =" + MAP_MAX_WIDTH);
			c = is.read();
			MAP_MAX_HEIGHT = c - 1;//地图高
			//System.out.println("MAP_MAX_HEIGHT =" + MAP_MAX_HEIGHT);
			map = new byte[MAP_MAX_HEIGHT+1][MAP_MAX_WIDTH+1];
			//System.out.println("9");
			for(int ih = 0; ih <= MAP_MAX_HEIGHT; ih++)
			{
				for(int iw = 0; iw <= MAP_MAX_WIDTH; iw++)
				{
					c = is.read();
					map[ih][iw] = (byte)c;//地图信息
					//System.out.print(" "+map[ih][iw]);
				}
				//System.out.println("");
			}

			c = is.read();
			rednum = (byte)c;//红方数量
			//System.out.println("rednum = "+rednum);
			redinfo = new byte[rednum][12];
			for(int ih = 0; ih < rednum; ih++)//红方初始信息(类型,坐标,等级,属性)
			{
				for(int iw = 0; iw < 5; iw++)
				{
					c = is.read();
					redinfo[ih][iw] = (byte)c;//人物信息
					//System.out.print(""+redinfo[ih][iw]);
				}
				//System.out.println();
			}
			//System.out.println("888888888888");

			//蓝方初始信息(角色编号,坐标)
			for(int ih = 0; ih < bluenum; ih++)
			{
				for(int iw = 1; iw < 3; iw++)
				{
					c = is.read();
					blueinfo[ih][iw] = (byte)c;
				}
			}

		}
		catch(Exception e)
		{
			System.out.println("");
		}
	}


	//读取存盘记录
	private void readStore(int index)
	{
		try
		{
			ByteArrayInputStream bais;
			DataInputStream      dis;
			byte                 data[];
			myStore = RecordStore.openRecordStore("save"+Integer.toString(index),true);

			try
			{
				data = myStore.getRecord(2);
				bais = new ByteArrayInputStream(data);
				dis  = new DataInputStream(bais);

				//	m[1] = dis.readInt();

				dis.close();
			}
			catch (Exception ioe)
			{
				System.out.println(ioe + "111111");
			}

			myStore.closeRecordStore();
    }
    catch (RecordStoreException rse)
    {
    		System.out.println(rse + "22222");
    }
	}

	//写入存盘记录
	private void writeStore(int index)
	{
		try
		{
			ByteArrayOutputStream baos;
			DataOutputStream      das;
			byte                 data[];
			myStore = RecordStore.openRecordStore("save"+Integer.toString(index),true);
			try
			{
				baos = new ByteArrayOutputStream();
				das = new DataOutputStream(baos);

				das.writeLong(System.currentTimeMillis());

				//	das.writeInt(s[1]);

				data = baos.toByteArray();
				das.close();
			}
			catch (Exception ioe)
			{
				throw new RecordStoreException();
			}
			if (myStore.getNumRecords() == 0)
			{
				myStore.addRecord(data,0,8);
				myStore.addRecord(data,8,12);
			}
			else
			{
				myStore.setRecord(1,data,0,8);
				myStore.setRecord(2,data,8,12);
			}
			myStore.closeRecordStore();
	    }
	    catch (RecordStoreException rse)
	    {
	    	//System.out.println(rse + "333633");
	    }
	}*/
}

⌨️ 快捷键说明

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