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


import javax.microedition.lcdui.*; 
import java.lang.*; 
import com.nokia.mid.ui.*; 
/*定义载入画面 
*/ 
public class Loading extends FullCanvas implements Runnable 
{ 
	public static Thread ld;//定义Loading的进程 
	private int type; 
	private Image com,com2,intro,text,sword,light;//定义载入时的图片 
	private int x; 
	private int y; 
	int lightx; 
	String story="故事简介:在一个安静的小山村里面,生活着一些勤劳勇敢的村民,他们每天的生活都是忙忙碌碌的,但是不就以前这安静的生活被彻底的打乱了,村民门发现周围的事物都变的很可怕,每个人的表情也是很奇怪,原来是在村子中连续发生了几起命案,而凶手就是一些不知名的妖怪,他们的手段残忍,竹庆是一个勇敢的青年,他的父亲也被妖怪所害,他决定替父报仇,消灭那群可恶的妖怪,他能成功吗?"; 
	String end="游戏胜利:所有的怪都已经不复存在了,我们勇敢的年轻人可以回去家乡报喜了,村庄又恢复了往常的宁静,村民们又过上了幸福而快乐的生活!请关注后续版本"; 
	private int proid; 
	int row; 
	public static boolean running; 
	public static Font myfont=Font.getFont(0,0,8); 
	/*参数i表示Loading的类型,1是新游戏的Loading,0是读取进度,2是移动Logo*/ 
	public Loading(int i) 
	{ 
		running=true; 
		this.type=i; 
		y=50; 
		proid=0; 
		row=(story.length()-1)/10; 
		//myfont=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_SMALL); 
		if(i==2) 
		{ 
			try 
			{ 
				com=Image.createImage("/Loading/com.png"); 
				com2=Image.createImage("/Loading/comm.png"); 
				intro=Image.createImage("/introBg.png"); 
				text=Image.createImage("/jianhun.png"); 
			} 
			catch(java.io.IOException e) 
			{ 
			} 
		} 
		else 
		if(i==1||i==0) 
		{ 
			lightx=0; 
			try 
			{ 
				intro=Image.createImage("/introBg.png"); 
				sword=Image.createImage("/sword.png"); 
				light=Image.createImage("/light.png"); 
			} 
			catch(Exception e) 
			{ 
			} 
		} 
	} 
	public void paint(Graphics g) 
	{	 
		if(type==2) 
		{ 
			g.setColor(-1); 
			g.fillRect(0,0,176,208);				 
			if(x<10) 
			g.drawImage(com,24,40,0); 
			else 
			if(x<20) 
			g.drawImage(com2,24,40,0); 
			else 
			if(x<=30) 
			{ 
	    	g.drawImage(intro,0,0,0); 
	    	g.drawImage(text,108-text.getWidth()/2,104-text.getHeight()/2,0);			 
			} 
			if(x==30) 
			{ 
				GM.mg.show(MG.gm); 
				MG.gm.start(); 
				MG.ld=null; 
			}				 
			return; 
		} 
		else 
		if(type==1) 
		{ 
			g.drawImage(intro,0,0,0); 
			if(x<50) 
			{ 
				g.drawImage(sword,88,80,17); 
				g.drawImage(light,40+lightx*2,65,0); 
				GM.sc.drawStringShadow(g,0,0,-1,"载入中",88,40,17); 
				lightx+=1; 
			} 
			else 
			if(x<140) 
			{ 
				g.setColor(255,255,255); 
				g.setClip(0,31,176,144); 
				for(int i=0;i<=row;i++) 
				{ 
					if((i+1)*10=MGC.w/2) 
							{ 
								if(MGC.x<=MGC.W[MGC.sl]*16-MGC.w/2) 
								MGC.x0=MGC.x-MGC.w/2; 
								else 
								MGC.x0=MGC.W[MGC.sl]*16-MGC.w; 
							} 
							else 
							MGC.x0=0; 
							if(MGC.y>=MGC.h/2) 
							{ 
								if(MGC.y<=MGC.H[MGC.sl]*16-MGC.h/2) 
								MGC.y0=MGC.y-MGC.h/2; 
								else 
								MGC.y0=MGC.H[MGC.sl]*16-MGC.h; 
							} 
							else 
							MGC.y0=0; 
							GM.mgc.repaint(); 
						}													 
						break; 
						case 1://开始新游戏 
						if(x==1) 
						{ 
							GM.mgc=null; 
							//System.gc();								 
							MGC.sl=0; 
							MGC.cI();//导入图形 
						} 
						else 
						if(x>50) 
						y-=4;				 
						break; 
						case 3://游戏结束 
						y-=4; 
						break; 
						default: 
						break; 
					}					 
					repaint(); 
					x++; 
				} 
				if(type==2) 
				Thread.sleep(100);//0.45秒后载入过程结束	 
				else 
				if(type==1||type==0) 
				Thread.sleep(50); 
			} 
			catch(java.lang.InterruptedException ie) 
			{ 
			} 
		} 
		running=false; 
		return;	 
	} 
}