?? j2me的rpg游戲核心代碼.txt
字號:
}
}
if(weapon[j]!=9)
{
g.setColor(255,255,255);
switch(weapon[j])
{
case 0:
temp="物理攻擊力加5,吸血10%";
break;
case 1:
temp="物理攻擊力加10,吸血25%";
break;
case 2:
temp="物理攻擊力加15,吸血45%";
break;
case 3:
temp="技能攻擊力加10%";
break;
case 4:
temp="技能攻擊力加20%";
break;
case 5:
temp="技能攻擊力加30%";
break;
case 6:
temp="基礎(chǔ)攻擊力加15%";
break;
case 7:
temp="基礎(chǔ)攻擊力加25%";
break;
case 8:
temp="基礎(chǔ)攻擊力加35%";
break;
}
g.drawString(temp.substring(0,temp.indexOf('加')),41,68,0);
g.drawString(temp.substring(temp.indexOf('加'),temp.length()),41,88,0);
}
temp=null;
break;
}
g.setColor(255,0,0);
g.drawRect(4,9+i*27,33,20);
}
if(!atm&&!pm)//主要場景繪制
{
int iii;
if(atc!=null)
{
atc.cancel();
while(atc.cancel())
{
}
atc=null;
}
/*場景繪制*/
for(v=y0/16;v<=(y0+h-1)/16;v++)
{
for(u=x0/16;u<=(x0+w-1)/16;u++)
{
o=v*W[sl]+u;
if(o>=0&&o<W[sl]*H[sl])
{
iii=sc[o]%100;
g.drawImage(screen[iii<16 iii:(iii+16-screenStart[sl])],u*16-x0,v*16-y0,0);
}
}
}
--------------------------------------------------------------------------------
回復(fù):
百分之百的支持
并收藏
--------------------------------------------------------------------------------
回復(fù):
有點搞笑的java“游戲”
--------------------------------------------------------------------------------
回復(fù):
/*計時器*/
import java.util.TimerTask;
public class TI extends TimerTask
{
MGC m;
int type;//延遲的類型。
int s;//攻擊動作的序號
int n;//當(dāng)前被攻擊的精靈序號
int j;
public TI(MGC g,int i)
{
this.m=g;
this.type=i;
this.s=1;
this.n=0;
}
public void run()
{
if(MGC.running)
{
switch(type)
{
//case 100:
//if(!m.pause&&m.playOn)
//{
//try
//{
// m.myplayer.realize();
// m.myplayer.start();
//}
//catch(javax.microedition.media.MediaException mm)
//{
//}
//}
//else
//if(!m.playOn)
//{
//try
//{
// m.myplayer.stop();
//}
//catch(javax.microedition.media.MediaException mm)
//{
//}
//}
//break;
case 13://切換場景
s++;
if(s==12)
m.change=false;
m.repaint();
break;
case 10://回血
switch(s)
{
case 1:
m.spic0=m.spic[5];
m.sx=16;
m.sy=144;
m.repaint();
break;
case 2:
m.sy=128;
m.repaint();
break;
case 3:
m.sy=144;
m.repaint();
break;
case 4:
m.sy=128;
m.l+=(m.le*m.le+10*m.le+60)*15*m.s[9]/100;
if(m.l>m.lm)
m.l=m.lm;
m.spi[0].l=m.l;
m.repaint();
break;
case 5:
m.spic0=null;
m.an=4;
m.repaint();
m.cancelATW();
break;
default:
break;
}
s++;
break;
case 11://回氣
switch(s)
{
case 1:
m.spic0=m.spic[4];
m.sx=16;
m.sy=144;
m.repaint();
break;
case 2:
m.sy=128;
m.repaint();
break;
case 3:
m.sy=144;
m.repaint();
break;
case 4:
m.sy=128;
m.m+=m.mm*20*m.s[10]/100;
if(m.m>m.mm)
m.m=m.mm;
m.repaint();
break;
case 5:
m.spic0=null;
m.an=4;
m.repaint();
m.cancelATW();
break;
default:
break;
}
s++;
break;
case 8://戰(zhàn)斗中攻擊順序的切換
if(m.atm&&!m.am&&m.atw==null)//在戰(zhàn)斗場景中,沒有戰(zhàn)斗菜單并且沒有攻擊行為的情況下
{
int i;
/*先判斷戰(zhàn)斗的結(jié)果*/
for(i=4;i<8;i++)
{
if(m.spi[i]!=null)
break;
}
if(i==8)//戰(zhàn)斗勝利
{
if(!m.win)
{
if(!m.pm)
{
m.win=true;
m.showW=true;
m.atm=false;
for(int k=1;k<4;k++)
m.spi[k]=null;
if(m.tran)
{
m.tran=!m.tran;
m.lm=m.le*m.le+10*m.le+60;
m.l=m.l-m.l*10*m.s[8]/(100+10*m.s[8])>m.lm m.lm:(m.l-m.l*10*m.s[8]/(100+10*m.s[8]));
m.d=5*m.le+2;
m.D=m.d+m.addPd+m.addPdP*m.d/100;
}
m.repaint();
}
}
}
else//主角陣亡
{
if(m.l==0)
{
if(!m.pm)
{
m.die=true;
m.atm=false;
for(int k=1;k<8;k++)
m.spi[k]=null;
if(m.tran)
{
m.tran=!m.tran;
m.lm=m.le*m.le+10*m.le+60;
m.l=m.l-m.l*10*m.s[8]/(100+10*m.s[8])>m.lm m.lm:(m.l-m.l*10*m.s[8]/(100+10*m.s[8]));
m.d=5*m.le+2;
m.D=m.d+m.d*m.addPdP/100+m.addPd;
}
m.repaint();
}
}
else
--------------------------------------------------------------------------------
回復(fù):
up
--------------------------------------------------------------------------------
回復(fù):
全部貼完了 還少了幾個文件``代碼貼完了 `找的很辛苦 問下誰有這個游戲的URL 麻煩鏈接個 謝謝 感覺好就頂下
--------------------------------------------------------------------------------
回復(fù):
/*精靈類*/
import javax.microedition.lcdui.Image;
public class SP
{
int l,lv,d,x,y;
int p;//圖片編號
public SP(int v)//怪物精靈
{
this.lv=v;
this.l=15*v*v+10;
//this.d=0;
this.d=3*v*v+1;
}
public SP(int i,int a)//主角放出的狼,熊,龍
{
this.l=i;
this.d=a;
this.lv=11;
}
public SP(int a,int b,int c)//其他精靈
{
this.x=a;
this.y=b;
this.l=c;
}
}
--------------------------------------------------------------------------------
回復(fù):
case 9:
if(ii<=5&&ii>=0&&!hasWeapon(2))
{
weapon[iii]=2;
temp="守護(hù)劍";
}
else
if(ii<=8&&ii>=6&&!hasWeapon(5))
{
weapon[iii]=5;
temp="紫砂劍";
}
else
if(ii<=15&&ii>=12&&!hasWeapon(8))
{
weapon[iii]=8;
temp="戰(zhàn)神劍";
}
break;
case 10:
if(ii<=7&&ii>=0&&!hasWeapon(2))
{
weapon[iii]=2;
temp="守護(hù)劍";
}
else
if(ii<=13&&ii>=8&&!hasWeapon(5))
{
weapon[iii]=5;
temp="紫砂劍";
}
else
if(ii<=19&&ii>=14&&!hasWeapon(8))
{
weapon[iii]=8;
temp="戰(zhàn)神劍";
}
break;
default:
break;
}
break;
}
}
if(temp!=null)
{
g.setColor(0,255,255);
g.drawString("獲得 "+temp,10,110,0);
}
/*任務(wù)物品check*/
if(task&&sl!=6&&temp==null)
{
temp=null;
int ii;
ii=rR(100);
if(ii<30)
{
switch(curEl)
{
case 4://豺
if(tn[0]<10)
{
tn[0]++;
temp="鶴靈草";
}
break;
case 5://狼
if(tn[1]<5)
{
tn[1]++;
temp="狼牙";
}
break;
case 6://虎
if(tn[4]<20&&task2)
{
tn[4]++;
temp="虎皮";
}
break;
case 9://僵尸將軍
if(tn[2]<10)
{
tn[2]++;
temp="米云香";
}
break;
case 10://Boss
if(tn[3]<5)
{
tn[3]++;
temp="雪巖";
}
break;
default:
break;
}
}
if(temp!=null)
{
g.setColor(0,255,255);
g.drawString("獲得 "+temp,10,110,0);
}
}
temp=null;
if(sl==6&&killCount!=10)
{
g.setColor(255,255,255);
g.drawString("還須進(jìn)行"+ts(10-killCount)+"場戰(zhàn)斗",0,0,0);
}
if(sl==6&&killCount==10)
{
g.setColor(0,255,255);
g.drawString("獲得銀子10000兩",0,120,0);
}
}
else
{
MG.showGame=false;
MG.gm.ld=new Loading(3);
MG.gm.loading=new Thread(MG.gm.ld);
MG.gm.loading.start();
MG.show(MG.gm.ld);
}
showW=false;
}
else
{
win=false;
repaint();
}
}
--------------------------------------------------------------------------------
回復(fù):
/*技能攻擊效果*/
void sat(int k)
{
atw=null;
switch(k)
{
case 0://火球
if(m>=10*s[0])
{
atw=new TI(this,4);
m-=10*s[0];
am=false;
if(t)
{
t=!t;
spi[0].p=130;
}
}
break;
case 1://落星
if(m>=10*s[1])
{
atw=new TI(this,5);
m-=10*s[1];
am=false;
if(t)
{
t=!t;
spi[0].p=130;
}
}
break;
case 2://風(fēng)殘
if(m>=20*s[2]&&l>=4*s[2]*lm/100)
{
atw=new TI(this,6);
m-=20*s[2];
l-=4*s[2]*lm/100;
spi[0].l=l;
am=false;
if(t)
{
t=!t;
spi[0].p=130;
}
}
break;
case 3://召狼
if(m>=(20*s[3]))
{
spi[1]=new SP(8*s[3]*s[3]+40,4*s[3]*s[3]+10);
spi[1].p=120;
spi[1].x=16;
spi[1].y=112;
m-=20*s[3];
am=false;
an=4;
repaint();
}
break;
case 4://召熊
if(m>=(30*s[4]))
{
spi[2]=new SP(20*s[4]*s[4]+60,s[4]*s[4]+7);
spi[2].p=100;
spi[2].x=16;
spi[2].y=64;
m-=30*s[4];
am=false;
an=4;
repaint();
}
break;
case 5://召龍
if(m>=30*s[5])
{
spi[3]=new SP(10*s[5]*s[5]+40,0);
spi[3].p=110;
spi[3].x=16;
spi[3].y=32;
m-=30*s[5];
am=false;
an=4;
repaint();
}
break;
case 6://隱身
if(m>=5*s[6])
{
spi[0].p=140;
if(tran)
{
tran=!tran;
lm=le*le+10*le+60;
l=l-l*10*s[8]/(100+10*s[8])>lm lm:(l-l*10*s[8]/(100+10*s[8]));
spi[0].l=l;
d=5*le+2;
D=d+addPd+addPdP*d/100;
spi[0].d=D;
}
t=true;
m-=5*s[6];
count=0;
am=false;
an=4;
repaint();
}
break;
case 7://遁走
if(m>=10*s[7]*s[7])
{
m-=10*s[7]*s[7];
if(rR(100)<20*s[7])
{
atm=false;
repaint();
atc.cancel();
atc=null;
for(int ii=0;ii<8;ii++)
spi[ii]=null;
if(tran)
{
tran=!tran;
lm=20*le+60;
l=l-l*10*s[8]/(100+10*s[8])>lm lm:(l-l*10*s[8]/(100+10*s[8]));
d=3*le+2;
D=d+d*addPdP/100+addPd;
}
repaint();
}
else
{
am=false;
an=4;
repaint();
}
}
break;
case 8://附身
if(m>=30+3*s[8]*s[8]&&!tran)
{
m-=30+3*s[8]*s[8];
tran=true;
if(t)
t=!t;
spi[0].p=150;
lm+=lm*10*s[8]/100;
l+=l*10*s[8]/100;
spi[0].l=l;
d+=d*20*s[8]/100;
D=d+addPdP*d/100+addPd;
spi[0].d=D;
count=0;
am=false;
an=4;
repaint();
}
break;
case 9://回血
if(m>=3*s[9]*s[9])
{
m-=3*s[9]*s[9];
atw=new TI(this,10);
am=false;
}
break;
case 10://回氣
if(gold>=20*s[10]*mm/100)
{
gold-=20*s[10]*mm/100;
atw=new TI(this,11);
am=false;
}
break;
case 11://普通攻擊
atw=new TI(this,0);
if(t)
t=!t;
am=false;
an=0;
break;
case 12://敵人攻擊
atw=new TI(this,9);
atw.j=an;
break;
case 22://熊攻擊
atw=new TI(this,2);
break;
case 21://狼攻擊
atw=new TI(this,1);
break;
}
if(atw!=null)
{
if(atw.type==4)
ti.schedule(atw,0,200);
else
ti.schedule(atw,0,250);
}
}
--------------------------------------------------------------------------------
回復(fù):
這么長?
LZ真是閑啊,時候這么多,
MARK
--------------------------------------------------------------------------------
回復(fù):
總算貼完了
--------------------------------------------------------------------------------
回復(fù):
//換個馬甲繼續(xù)貼
/*角色移動 移動方式中1表示邁左腿,2表示邁右腿*/
public void move()
{
System.out.println("move");
if(dr%3==2||dr%3==0)
{
if(c()>1&&c()<10)//對話NPC出現(xiàn)的Tile
{
if(c()==4)
{
if(tn[0]==10&&tn[1]==5&&tn[2]==10&&tn[3]==5)
message(4);
}
else
message(c());
cancelMove();
dr=dr/3*3;
repaint();
}
else
if(c()==99)//場景出入口
{
if(boat)
{
tm=true;
i=0;
}
else
tip="請去找船工買船";
cancelMove();
dr=dr/3*3;
repaint();
}
else
if(c()==97)//大Boss
{
cancelMove();
if(tn[0]==10&&tn[1]==5&&tn[2]==10&&tn[3]==5&&tn[4]==20)
fi(1,15);
else
{
tm=true;
dr=dr/3*3;
repaint();
}
}
else
if(c()==98)//寶箱
{
cancelMove();
int ii=rR(2*sl+1)*10;
gold+=ii*(2*sl+1);
tip=ii>0 "獲得"+ts(ii*(2*sl+1))+"兩銀子":"一無所獲";
switch(dr/3)
{
case 1://向下
if(y<H[sl]*16-32)
sc[((y+31)/16+1)*W[sl]+x/16]=sc[(y+31)/16*W[sl]+x/16];
break;
case 0://向左
if(x!=0)
sc[(y+31)/16*W[sl]+x/16-1]=sc[(y+31)/16*W[sl]+x/16];
break;
case 3://向右
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -