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;
}
}