?? j2me的rpg游戲核心代碼.txt
字號(hào):
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)//沒(méi)有怪出現(xiàn)
{
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://靜止?fàn)顟B(tài)
//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://靜止?fàn)顟B(tài)
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://靜止?fàn)顟B(tài)
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://靜止?fàn)顟B(tài)
repaint();
break;
}
}
}
--------------------------------------------------------------------------------
回復(fù):
hard code
--------------------------------------------------------------------------------
回復(fù):
這帖子是不短呀?。。?支持一下吧??!
--------------------------------------------------------------------------------
回復(fù):
/*下面是對(duì)攻擊順序的切換*/
if(m.an<3&&m.an>0)
{
if(m.spi[m.an]!=null)
m.sat(m.an+20);
else
m.an=m.an==2 1:0;
}
else
if(m.an==0)
{
m.am=true;
/*判斷隱身的回合數(shù)*/
if(m.t)
{
m.count++;
if(m.count==1+m.s[6])
m.t=!m.t;
}
else
if(m.tran)
{
m.count++;
if(m.count>m.s[8])
{
m.tran=!m.tran;
m.lm=m.le*m.le+10*m.le+60;
m.l=m.l*80/100>m.lm m.lm:m.l*80/100;
m.spi[0].l=m.l;
m.spi[0].d=5*m.le+2;
m.d=m.spi[0].d;
}
}
m.repaint();
}
else
{
while(m.an<8)
{
if(m.spi[m.an]!=null)
{
m.sat(12);
break;
}
else
m.an++;
}
if(m.an>7)
m.an=2;
}
}
}
break;
case 9://敵人攻擊
if(s==1)
{
for(int i=3;i>=0;i--)
{
if(m.spi[i]!=null)
{
if((i==0&&!m.t)||i!=0)
{
m.spi[j].x=m.spi[i].x+16;
m.spi[j].y=m.spi[i].y/32*32;
m.spi[j].p++;
if(i!=0&&m.spi[j].lv==15)
m.spi[i].l-=2*m.spi[j].d;
else
m.spi[i].l-=m.spi[j].d;
if(m.spi[i].l<0)
m.spi[i].l=0;
m.l=m.spi[0].l;
if(i==3&&m.spi[j].lv!=15)
m.spi[j].l-=m.spi[j].d*10*m.s[5]/100;
if(m.spi[j].l<0)
m.spi[j].l=0;
m.repaint();
n=i;
break;
}
else
s=4;
}
}
}
else
if(s==2)
{
m.spi[n].x-=5;
if(n==0)
m.spi[0].p=141;
m.repaint();
}
else
if(s==3)
{
m.spi[n].x+=5;
m.spi[j].x=128;
m.spi[j].y=(j-4)*32+((m.spi[j].lv-1)/3==1 15:0)+32;
m.spi[j].p--;
if(n==0)
{
if(!m.tran)
m.spi[0].p=130;
else
m.spi[0].p=150;
}
if(m.spi[n].l==0)
m.spi[n]=null;
if(m.spi[j].l==0)
{
if(m.spi[0].l>0)
{
m.sn+=100*m.spi[j].lv*m.spi[j].lv/m.le;
m.nn+=4*m.spi[j].lv*m.spi[j].lv;
}
m.spi[j]=null;
}
m.repaint();
}
else
{
m.an++;
if(m.an>7)
m.an=2;
m.repaint();
m.cancelATW();
}
s++;
break;
case 7:
m.move();
break;
case 4://火球攻擊
switch(s)
{
case 1:
for(int i=0;i<4;i++)
{
if(m.spi[i+4]!=null)
{
m.sx=m.spi[i+4].x;
m.sy=m.spi[i+4].y-16;
m.spic0=m.spic[3];
m.repaint();
n=i;
break;
}
}
break;
case 2:
m.sy+=8;
m.repaint();
break;
case 3:
m.sy+=8;
m.spic0=m.spic[0];
m.repaint();
break;
case 4:
m.sy-=2;
m.repaint();
break;
case 5:
m.sy+=2;
if(m.spi[n+4].lv!=15)
m.spi[n+4].l-=(5*m.s[0]*m.s[0]+15)*(100+m.stealB)/100;
if(m.spi[n+4].l<0)
m.spi[n+4].l=0;
m.repaint();
break;
case 6:
m.spic0=null;
if(m.spi[n+4].l==0)
{
m.sn+=100*m.spi[n+4].lv*m.spi[n+4].lv/m.le;
m.nn+=4*m.spi[n+4].lv*m.spi[n+4].lv;
m.spi[n+4]=null;
}
m.repaint();
break;
case 7:
m.an=4;
m.repaint();
m.cancelATW();
break;
default:
break;
}
s++;
break;
case 5://落星攻擊
s++;
m.repaint();
break;
case 6://風(fēng)殘攻擊
s++;
m.repaint();
break;
default://普通攻擊
if(s==1)
{
for(int i=0;i<4;i++)
{
if(m.spi[i+4]!=null)
{
m.spi[type].x=m.spi[i+4].x-16;
m.spi[type].y=m.spi[i+4].y;
m.spi[type].p++;
if(type==0)
{
if(m.spi[i+4].l<m.D)
m.l+=m.spi[i+4].l*m.stealB/100;
else
m.l+=m.D*m.stealB/100;
if(m.l>m.lm)
m.l=m.lm;
m.spi[0].l=m.l;
}
m.spi[i+4].l-=m.spi[type].d;
if(m.spi[i+4].l<0)
m.spi[i+4].l=0;
m.repaint();
n=i;
break;
}
}
}
else
if(s==2)
{
m.spi[n+4].x+=5;
m.repaint();
}
else
if(s==3)
{
m.spi[n+4].x-=5;
m.spi[type].x=16;
m.spi[type].y=96-32*type+(type==1 16:0)+32;
m.spi[type].p--;
if(m.spi[n+4].l==0)
{
m.sn+=100*m.spi[n+4].lv*m.spi[n+4].lv/m.le;
m.nn+=4*m.spi[n+4].lv*m.spi[n+4].lv;
m.spi[n+4]=null;
}
m.repaint();
}
else
{
m.an--;
if(m.an<0)
m.an=4;
m.repaint();
m.cancelATW();
}
s++;
break;
}
}
}
}
--------------------------------------------------------------------------------
回復(fù):
import javax.microedition.lcdui.*;
import java.lang.*;
/*定義載入畫面
*/
public class Loading extends Canvas implements Runnable,CommandListener
{
public static Thread ld;//定義Loading的進(jìn)程
private int type;
private Image i1,intro;//定義載入時(shí)的圖片
private int x;
private int y;
private int proid;
private Command skip;
public static boolean running;
public static Font myfont;
/*參數(shù)i表示Loading的類型,1是新游戲的Loading,0是讀取進(jìn)度,2是移動(dòng)Logo*/
public Loading(int i)
{
running=true;
skip=new Command("跳過(guò)",Command.OK,0);
this.type=i;
y=50;
proid=0;
//myfont=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_SMALL);
if(i==2)
{
try
{
i1=Image.createImage("/logo.png");
intro=Image.createImage("/intro.png");
}
catch(java.io.IOException e)
{
}
}
}
public void paint(Graphics g)
{
g.setColor(0,0,0);
g.fillRect(0,0,getWidth(),getHeight());
//g.setFont(myfont);
if(type!=3)
{
if(x<11)
{
if(type!=2)
{
g.setColor(255,255,255);
g.drawString("載入中.....",45,50,0);
}
else
{
g.setColor(0xffffff);
g.fillRect(0, 0, getWidth(),getHeight());
g.drawImage(i1,30,15,g.TOP|g.LEFT);
g.setColor(0,0,0);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN ,Font.SIZE_SMALL));
g.drawString("正在下載",35,120,g.TOP|g.LEFT);
g.drawRect(30,140,116,14);
g.setColor(0,0,255);
for(int i=0;i<proid/3;i++)
g.fillRect(32+ i*19,142,17,11);
proid++;
}
}
else
if(type==1)
{
addCommand(skip);
setCommandListener(this);
if(x<80)
{
g.setColor(255,255,255);
g.drawString("當(dāng)年, 徐敬業(yè)同駱",20,y,0);
g.drawString("賓王討伐武后, 寡",20,y+18,0);
g.drawString("不敵眾, 僅余千人",20,y+36,0);
g.drawString("逃出, 駱賓王帳下",20,y+54,0);
g.drawString("有一員大將逃出重",20,y+72,0);
g.drawString("圍后來(lái)到關(guān)內(nèi)隱姓",20,y+90,0);
g.drawString("埋名生下一子名叫",20,y+108,0);
g.drawString("李景鴻。如今長(zhǎng)大",20,y+126,0);
g.drawString("成人,為完成父親",20,y+144,0);
g.drawString("的遺愿,決定前往",20,y+162,0);
g.drawString("蓬萊仙島尋找徐敬",20,y+180,0);
g.drawString("業(yè)與駱賓王的后人",20,y+198,0);
g.drawString(", 輔助完成大業(yè)..",20,y+216,0);
g.setColor(0);
g.fillRect(0,0,19,getHeight());
g.fillRect(157,0,19,getHeight());
g.setColor(0xffffff);
for(int ii=0;ii<getHeight()/15;ii++)
{
g.fillArc(5,ii*15+5,10,10,0,360);
g.fillArc(161,ii*15+5,10,10,0,360);
}
}
else
{
System.out.println("start");
GM.mgc=new MGC();
GM.mgc.ge();
GM.ld=null;
GM.mg.show(GM.mgc);
MG.showGame=true;
if(GM.playOn)
bgThread.shouldPause=false;
}
}
else
{
if(x<30)
{
if(type!=2)
{
g.setColor(255,255,255);
g.drawString("載入中.....",45,50,0);
}
else
{
g.setColor(0xffffff);
g.fillRect(0, 0, getWidth(),getHeight());
if(x<20)
{
g.drawImage(i1,30,15,g.TOP|g.LEFT);
g.setColor(0,0,0);
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN ,Font.SIZE_SMALL));
g.drawString("正在下載",35,120,g.TOP|g.LEFT);
g.drawRect(30,140,116,14);
g.setColor(0,0,255);
for(int i=0;i<proid/3;i++)
g.fillRect(32+ i*19,142,17,11);
proid++;
}
else
g.drawImage(intro,0,0,0);
}
}
else
{
GM.ld=null;
if(type==2)
{
GM.mg.show(MG.gm);
MG.ld=null;
}
else
{
GM.mg.show(GM.mgc);
MG.showGame=true;
if(GM.playOn)
bgThread.shouldPause=false;
}
i1=null;
intro=null;
}
}
}
else
{
addCommand(skip);
setCommandListener(this);
if(x<60)
{
g.setColor(255,255,255);
g.drawString("景鴻, 你經(jīng)歷了諸",0,y,0);
g.drawString("多磨難, 打敗了無(wú)",0,y+18,0);
g.drawString("數(shù)敵人, 為二位將",0,y+36,0);
g.drawString("軍的復(fù)國(guó)大業(yè)立下",0,y+54,0);
g.drawString("了汗馬功勞, 如今",0,y+72,0);
g.drawString("正是嚴(yán)冬, 等這個(gè)",0,y+90,0);
g.drawString("冬天過(guò)后, 你就跟",0,y+108,0);
g.drawString("隨二位將軍一起出",0,y+126,0);
g.drawString("征吧!..........",0,y+144,0);
g.setColor(255,255,0);
g.drawString("敬請(qǐng)關(guān)注后續(xù)版本!",0,y+180,0);
}
else
{
GM.cI();
GM.mg.show(MG.gm);
}
}
}
public void run()
{
x=0;
ld=new Thread(MG.gm.ld);
synchronized(ld)
{
while(x<(type==1 80:(type==3 60:30)))
{
try
{
if(running)
{
switch(type)
{
case 0://讀取存檔
if(x==1)
{
GM.mgc=null;
System.gc();
MGC.sl=0;
MGC.cI();//導(dǎo)入圖形
}
else
if(x==5)
{
GM.mgc=new MGC();
GM.mgc.ge();
}
else
if(x==7)
{
SA s=new SA();
s.r();
s=null;
}
else
if(x==10)
{
GM.mgc.lm=GM.mgc.le*GM.mgc.le+10*GM.mgc.le+60;
GM.mgc.mm=20*GM.mgc.le+20;
GM.mgc.d=5*GM.mgc.le+2;
GM.mgc.D=GM.mgc.d;
if(GM.mgc.dlg[0])
{
GM.mgc.me=false;
GM.mgc.dlgpic=null;
MGC.x=MGC.startx[MGC.sl];
MGC.y=MGC.starty[MGC.sl];
}
else
{
GM.mgc.me=true;
MGC.x=384;
MGC.y=304;
}
if(MGC.x>=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://開(kāi)始新游戲
if(x==1)
{
GM.mgc=null;
System.gc();
MGC.sl=0;
MGC.cI();//導(dǎo)入圖形
}
else
if(x>10)
y-=2;
break;
case 3://游戲結(jié)束
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -