📄 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="基础攻击力加15%";
break;
case 7:
temp="基础攻击力加25%";
break;
case 8:
temp="基础攻击力加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);
}
}
}
--------------------------------------------------------------------------------
回复:
百分之百的支持
并收藏
--------------------------------------------------------------------------------
回复:
有点搞笑的java“游戏”
--------------------------------------------------------------------------------
回复:
/*计时器*/
import java.util.TimerTask;
public class TI extends TimerTask
{
MGC m;
int type;//延迟的类型。
int s;//攻击动作的序号
int n;//当前被攻击的精灵序号
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://战斗中攻击顺序的切换
if(m.atm&&!m.am&&m.atw==null)//在战斗场景中,没有战斗菜单并且没有攻击行为的情况下
{
int i;
/*先判断战斗的结果*/
for(i=4;i<8;i++)
{
if(m.spi[i]!=null)
break;
}
if(i==8)//战斗胜利
{
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
--------------------------------------------------------------------------------
回复:
up
--------------------------------------------------------------------------------
回复:
全部贴完了 还少了几个文件``代码贴完了 `找的很辛苦 问下谁有这个游戏的URL 麻烦链接个 谢谢 感觉好就顶下
--------------------------------------------------------------------------------
回复:
/*精灵类*/
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;
}
}
--------------------------------------------------------------------------------
回复:
case 9:
if(ii<=5&&ii>=0&&!hasWeapon(2))
{
weapon[iii]=2;
temp="守护剑";
}
else
if(ii<=8&&ii>=6&&!hasWeapon(5))
{
weapon[iii]=5;
temp="紫砂剑";
}
else
if(ii<=15&&ii>=12&&!hasWeapon(8))
{
weapon[iii]=8;
temp="战神剑";
}
break;
case 10:
if(ii<=7&&ii>=0&&!hasWeapon(2))
{
weapon[iii]=2;
temp="守护剑";
}
else
if(ii<=13&&ii>=8&&!hasWeapon(5))
{
weapon[iii]=5;
temp="紫砂剑";
}
else
if(ii<=19&&ii>=14&&!hasWeapon(8))
{
weapon[iii]=8;
temp="战神剑";
}
break;
default:
break;
}
break;
}
}
if(temp!=null)
{
g.setColor(0,255,255);
g.drawString("获得 "+temp,10,110,0);
}
/*任务物品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("还须进行"+ts(10-killCount)+"场战斗",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();
}
}
--------------------------------------------------------------------------------
回复:
/*技能攻击效果*/
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://风残
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);
}
}
--------------------------------------------------------------------------------
回复:
这么长?
LZ真是闲啊,时候这么多,
MARK
--------------------------------------------------------------------------------
回复:
总算贴完了
--------------------------------------------------------------------------------
回复:
//换个马甲继续贴
/*角色移动 移动方式中1表示迈左腿,2表示迈右腿*/
public void move()
{
System.out.println("move");
if(dr%3==2||dr%3==0)
{
if(c()>1&&c()<10)//对话NPC出现的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://向右
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -