www.pudn.com > j2me-jianhun.rar > GM.java


/*游戏菜单*/ 
import javax.microedition.lcdui.*; 
import java.lang.String; 
import com.nokia.mid.ui.*; 
public class GM extends FullCanvas implements Runnable 
{ 
	public static Image gmenu,menubar,menuText,arrow,text; 
	public static MGC mgc;//创建一个场景对象 
	public static MG mg;//创建一个主控制对象 
	public static byte i;//当前高亮选项的序号 
	public static Loading ld; 
	public static boolean playOn,showS; 
	public Thread loading; 
	boolean run; 
	int offset; 
	public static boolean running; 
	int b; 
	static showContent sc=new showContent("NOKIA",176,208,1,1,1,new String[]{},new String[]{}); 
	public GM(MG m) 
	{ 
		running=true; 
		//addCommand(start); 
		//setCommandListener(this); 
		cI(); 
		playOn=true;	 
		i=0; 
		repaint(); 
		mg=m; 
	} 
	public void start() 
	{ 
		run=true; 
		new Thread(this).start(); 
	}		 
	public void run() 
	{ 
		while(run) 
		{ 
			try 
			{ 
				offset++; 
				if(offset==8) 
				offset=0; 
				repaint(); 
				Thread.sleep(40); 
			} 
			catch(Exception e) 
			{ 
			} 
		} 
	} 
			 
	//创建Loading线程 
	void load() 
	{ 
		running=false; 
		ld=null; 
		ld=new Loading(1); 
		loading=new Thread(ld); 
		loading.start(); 
		MG.show(ld);//显示Loading界面。 
		gmenu=null; 
	}	 
	//创建游戏菜单需要的图片 
	public static void cI() 
	{ 
		SA s=new SA(); 
		if(s.tO())	 
		showS=true; 
		else 
		showS=false;	 
		try 
		{ 
			gmenu=Image.createImage("/introBg.png"); 
			text=Image.createImage("/jianhun.png"); 
			menubar=Image.createImage("/menubar.png"); 
			menuText=Image.createImage("/menuText.png"); 
			arrow=Image.createImage("/arrow.png"); 
		} 
		catch(java.io.IOException ioe) 
		{ 
		} 
	}		 
	//读取进度 
	void rr() 
	{ 
		ld=null; 
		ld=new Loading(0); 
		loading=new Thread(ld); 
		loading.start(); 
		MG.show(ld);//显示Loading界面。 
		gmenu=null; 
	} 
	public void keyPressed(int keyCode) 
	{ 
		int act=getGameAction(keyCode); 
		switch(act) 
		{ 
			case LEFT: 
			if(i>0) 
			{ 
				i--; 
				if(!showS&&i==1) 
				i=0; 
				else 
				if(i==3&&playOn) 
				i=2; 
				else 
				if(i==2) 
				{ 
					if(!showS) 
					i=0; 
					else 
					i=1; 
				}		 
			} 
			else 
			i=6; 
			repaint(); 
			break; 
			case RIGHT: 
			if(i<6) 
			{ 
				i++; 
				if(!showS&&i==1) 
				{ 
					if(playOn) 
					i=2; 
					else 
					i=3; 
				} 
				else 
				if(i==3) 
				i=4; 
			} 
			else 
			i=0; 
			repaint();			 
			break;		 
			default: 
			if(keyCode==-6||getGameAction(keyCode)==8) 
			{ 
				switch(i) 
				{ 
					case 0: 
					load();//开始新游戏  
					break; 
					case 1: 
					SA s=new SA(); 
					if(s.tO()) 
					rr();//读取进度 
					break; 
					case 4: 
					if(mg.t==null) 
					{ 
						mg.back2=new Command("",Command.BACK,0); 
						mg.back1=new Command("返回",Command.SCREEN,0); 
						mg.t=new Form("帮助"); 
						mg.t.append("游戏背景:"); 
						mg.t.append("为完成父亲的遗愿,李景鸿决定前往蓬莱仙岛寻找徐敬业与骆宾王的遗孀,辅助完成复国大业。但一路上困难重重,李景鸿能否顺利到达蓬莱仙岛呢?又能否完成父亲的遗愿呢?"); 
						mg.t.append(" "); 
						mg.t.append("操作方法:"); 
						mg.t.append("游戏中用方向键和2、4、6、8键控制主角移动以及进行菜单选择,5键或OK键选定, 3键调出/关闭属性菜单,左软键调出操作菜单,可查看帮助信息,保存游戏或回到主菜单。"); 
						mg.t.append(" "); 
						mg.t.append("关键提示:"); 
						mg.t.append("玩家每次升级将得到一点技能属性用来学习技能,每项技能所能修炼的最高等级受主角等级限制,技能等级越高,效果越显著。使用“召狼”等技能时,召唤出的宠物将被优先攻击。使用技能会消耗主角的“气力”,“回气”技能将耗费一定数量的金钱。主角战死会损失一定比例的经验及金钱。"); 
						mg.t.append("在战斗过程中菜单选项将不会响应。"); 
						mg.t.append(" "); 
						mg.t.append("招式详解:"); 
						mg.t.append("火球:用内力聚成一个火球,对单个敌人造成极大伤害"); 
						mg.t.append("落星:在天空中形成流星般的巨石,砸向全部敌人"); 
						mg.t.append("风残:耗费自身的血和气来形成一股飓风,对全部敌人造成较大伤害"); 
						mg.t.append("召狼:召唤精灵狼来辅助战斗,生命力较弱但攻击力很强"); 
						mg.t.append("召熊:召唤精灵熊来辅助战斗,攻击力很弱但生命力较强,可以用作战斗中的护盾"); 
						mg.t.append("召龙:召唤神龙来辅助战斗,可以反弹敌人部分攻击并反伤敌人"); 
						mg.t.append("隐身:在数回合内主角将不受攻击,但使用附身或攻击敌人则会失效"); 
						mg.t.append("遁走:从战斗中直接逃走,技能等级高则逃走成功率大"); 
						mg.t.append("附身:召唤影子与主角并肩作战,使主角生命力和攻击力按比例上升"); 
						mg.t.append("回血:恢复主角一定比例的生命力"); 
						mg.t.append("回气:恢复主角一定比例的气力,但要耗费一定量的金钱"); 
						mg.t.append("攻击:使用普通攻击对敌单体造成伤害");					 
						mg.t.addCommand(mg.back2); 
						mg.t.addCommand(mg.back1); 
						mg.t.setCommandListener(mg); 
						mg.show(mg.t); 
						MG.showHelp=true; 
					} 
					break; 
					case 5://关于游戏 
					if(mg.t==null) 
					{ 
						mg.back2=new Command("",Command.BACK,0); 
						mg.back1=new Command("返回",Command.SCREEN,0); 
						mg.t=new Form("关于游戏"); 
						mg.t.append("游戏名称:剑魂"); 
						mg.t.append("发行商:联动纳维科技发展有限公司"); 
						mg.t.append("发行商网站:www.mnc.com.cn ");					 
						mg.t.append("客服Email:info@mnc.com.cn"); 
						mg.t.append("客服电话:800-810-8920"); 
						mg.t.addCommand(mg.back2); 
						mg.t.addCommand(mg.back1); 
						mg.t.setCommandListener(mg); 
						mg.show(mg.t); 
						MG.showHelp=true; 
					} 
					case 2: 
					case 3://音效设置 
					playOn=!playOn; 
					if(playOn) 
					i=2; 
					else 
					i=3; 
					repaint(); 
					break; 
					case 6:				 
					mg.exit();//退出游戏  
					break; 
					default: 
					break; 
				}		 
			}		 
			break; 
		} 
	} 
	public void paint(Graphics g) 
	{ 
		g.drawImage(gmenu,0,0,0); 
		g.drawImage(text,108-text.getWidth()/2,104-text.getHeight()/2,0); 
		g.drawImage(menubar,88,150,17); 
		sc.drawClipImage(g,arrow,40-offset,158,5,10,0,0); 
		sc.drawClipImage(g,arrow,176-45+offset,158,5,10,5,0); 
	  sc.drawClipImage(g,menuText,60,156,53,14,0,i*14);						 
	}	 
}