📄 e070f72a48cf001216b0addf11818cf9
字号:
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);
}
}
/*判断怪物掉出的宝是否角色已经拥有*/
boolean hasWeapon(int s)
{
boolean temp=false;
for(int ii=0;ii<6;ii++)
{
if(weapon[ii]==s)
{
temp=true;
break;
}
}
return(temp);
}
/*战斗场景控制*/
public void fi(int n,int lvl)
{
/*spi为8位数组,spi[0]为主角, spi[1]为狼,spi[2]为熊,spi[3]为龙, 其余的为敌人*/
if(n!=0)
{
removeCommand(gmenu);
addCommand(choose);
for(int i=0;i<n;i++)
{
spi[i+4]=new SP(lvl);
spi[i+4].x=128;
spi[i+4].y=i*32+((lvl-1)/3==1?15:0)+32;
if(lvl!=15)
spi[i+4].p=(lvl-1)*10;
else
spi[i+4].p=160;
}
spi[0]=new SP(l,D);
spi[0].x=16;
spi[0].y=128;
spi[0].p=130;
curEl=lvl;//将当前战斗的怪的等级设为给定等级
atm=true;
am=true;
sn=0;
nn=0;
atc=new TI(this,8);
ti.schedule(atc,0,100);
repaint();
}
}
/*将数据转成字符串*/
String ts(int s)
{
return(String.valueOf(s));
}
public void paint(Graphics g)
{
System.gc();
g.setColor(0,0,0);
g.fillRect(0,0,w,183);
if(!change)//当没有进行场景切换的时候绘制下面的场景
{
if(changeMap!=null)
{
changeMap.cancel();
changeMap=null;
}
int u,v,o;
if(atm)//绘制战斗中的场景
{
int iii=sc[(y+31)/16*W[sl]+(x+15)/16]%100;
for(int p=0;p<11;p++)
for(int q=0;q<13;q++)
{
if(q<2||q>10)
g.drawImage(screen[1],p*16,q*16,0);
else
g.drawImage(screen[iii<=16?iii:(iii-screenStart[sl]+16)],p*16,q*16,0);//用主角触发战斗前所在的Tile的图片铺成战斗场景
}
for(int i=0;i<8;i++)
{
if(spi[i]!=null)
{
if(i>3)
{
if(spi[i].lv<4||spi[i].lv>6)
{
if(spi[i].lv!=15)
{
g.setClip(spi[i].x,spi[i].y,16,32);
g.drawImage(atpic,spi[i].x-spi[i].p%10*16,spi[i].y-spi[i].p/10*32,0);
}
else
{
g.setClip(spi[i].x,spi[i].y,32,32);
g.drawImage(atpic,spi[i].x,spi[i].y-spi[i].p/10*32-spi[i].p%10*32,0);
}
}
else
{
g.setClip(spi[i].x,spi[i].y,32,16);
g.drawImage(atpic,spi[i].x,spi[i].y-spi[i].p/10*32-spi[i].p%10*16,0);
}
}
else
if(i==1)
{
g.setClip(spi[1].x,spi[1].y,32,16);
g.drawImage(atpic,spi[1].x,spi[1].y-spi[1].p/10*32-spi[1].p%10*16,0);
}
else
{
g.setClip(spi[i].x,spi[i].y,16,32);
g.drawImage(atpic,spi[i].x-spi[i].p%10*16,spi[i].y-spi[i].p/10*32,0);
}
g.setClip(0,0,w,h);
g.setColor(0,0,0);
if(i<4)
g.drawRect(6,(3-i)*32+15+32,5,16);
else
g.drawRect(152,(i-4)*32+15+32,5,16);
g.drawRect(0,143,5,16);
g.setColor(255,0,0);
if(i>=4)
g.fillRect(153,(i-3)*32-16*spi[i].l/(spi[i].lv*spi[i].lv*15+10)+32,4,16*spi[i].l/(spi[i].lv*spi[i].lv*15+10)-1);
else
switch(i)
{
case 0://主角
g.fillRect(7,128-16*l/lm+32,4,16*l/lm-1);
break;
case 1://狼
g.fillRect(7,96-16*spi[1].l/(8*s[3]*s[3]+40)+32,4,16*spi[1].l/(8*s[3]*s[3]+40)-1);
break;
case 2://熊
g.fillRect(7,64-16*spi[2].l/(20*s[4]*s[4]+60)+32,4,16*spi[2].l/(20*s[4]*s[4]+60)-1);
break;
case 3://龙
g.fillRect(7,32-16*spi[3].l/(10*s[5]*s[5]+40)+32,4,16*spi[3].l/(10*s[5]*s[5]+40)-1);
break;
}
g.setColor(0,0,255);
g.fillRect(1,160-16*m/mm,4,16*m/mm-1);
}
}
if(spic0!=null)
g.drawImage(spic0,sx,sy,0);
if(atw!=null)
{
if(atw.type==5)//落星效果
{
switch(atw.s)
{
case 2:
for(int ii=0;ii<5;ii++)
{
g.drawImage(spic[1],rR(60)+112,0,0);
g.drawImage(spic[1],rR(60)+112,32,0);
}
break;
case 3:
for(int ii=0;ii<5;ii++)
{
g.drawImage(spic[1],rR(60)+112,0,0);
g.drawImage(spic[1],rR(60)+112,32,0);
g.drawImage(spic[1],rR(60)+112,64,0);
g.drawImage(spic[1],rR(60)+112,96,0);
}
break;
case 4:
for(int ii=0;ii<5;ii++)
{
g.drawImage(spic[1],rR(60)+112,0,0);
g.drawImage(spic[1],rR(60)+112,32,0);
g.drawImage(spic[1],rR(60)+112,64,0);
g.drawImage(spic[1],rR(60)+112,96,0);
g.drawImage(spic[1],rR(60)+112,128,0);
g.drawImage(spic[1],rR(60)+112,160,0);
}
break;
case 5:
for(int ii=0;ii<5;ii++)
{
g.drawImage(spic[1],rR(60)+112,0,0);
g.drawImage(spic[1],rR(60)+112,32,0);
g.drawImage(spic[1],rR(60)+112,64,0);
g.drawImage(spic[1],rR(60)+112,96,0);
g.drawImage(spic[1],rR(60)+112,128,0);
g.drawImage(spic[1],rR(60)+112,160,0);
g.drawImage(spic[1],rR(60)+112,192,0);
}
for(int i=0;i<4;i++)
{
if(spi[i+4]!=null)
{
if(spi[i+4].lv!=15)
spi[i+4].l-=(2*s[1]*s[1]+10)*(100+addMd)/100;
}
}
break;
case 6:
for(int i=0;i<4;i++)
{
if(spi[i+4]!=null)
{
if(spi[i+4].l<=0)
{
sn+=100*spi[i+4].lv*spi[i+4].lv/le;
nn+=4*spi[i+4].lv*spi[i+4].lv;
spi[i+4]=null;
}
}
}
break;
case 7:
an=4;
cancelATW();
repaint();
break;
default:
break;
}
}
else
if(atw.type==6)//风残效果
{
switch(atw.s)
{
case 2:
for(int ii=0;ii<6;ii++)
{
g.drawImage(spic[2],0,rR(128),0);
g.drawImage(spic[2],32,rR(128),0);
}
break;
case 3:
for(int ii=0;ii<6;ii++)
{
g.drawImage(spic[2],0,rR(128),0);
g.drawImage(spic[2],32,rR(128),0);
g.drawImage(spic[2],64,rR(128),0);
g.drawImage(spic[2],96,rR(128),0);
}
break;
case 4:
for(int ii=0;ii<6;ii++)
{
g.drawImage(spic[2],0,rR(128),0);
g.drawImage(spic[2],32,rR(128),0);
g.drawImage(spic[2],64,rR(128),0);
g.drawImage(spic[2],96,rR(128),0);
g.drawImage(spic[2],128,rR(128),0);
}
break;
case 5:
for(int ii=0;ii<6;ii++)
{
g.drawImage(spic[2],0,rR(128),0);
g.drawImage(spic[2],32,rR(128),0);
g.drawImage(spic[2],64,rR(128),0);
g.drawImage(spic[2],96,rR(128),0);
g.drawImage(spic[2],128,rR(128),0);
g.drawImage(spic[2],160,rR(128),0);
}
for(int i=0;i<4;i++)
{
if(spi[i+4]!=null)
{
if(spi[i+4].lv!=15)
spi[i+4].l-=3*s[2]*lm/100*(100+addMd)/100;
}
}
break;
case 6:
for(int i=0;i<4;i++)
{
if(spi[i+4]!=null)
{
if(spi[i+4].l<=0)
{
sn+=100*spi[i+4].lv*spi[i+4].lv/le;
nn+=4*spi[i+4].lv*spi[i+4].lv;
spi[i+4]=null;
}
}
}
break;
case 7:
an=4;
cancelATW();
repaint();
break;
default:
break;
}
}
}
}
/*战斗菜单绘制*/
if(am)
{
System.out.println("tmd3");
g.setFont(Loading.myfont);
g.setColor(0,255,0);
g.fillRect(29,47,140,75);
g.setColor(0,0,255);
g.drawRect(29,47,140,75);
g.drawString("火球",31,49,0);
g.drawString("落星",65,49,0);
g.drawString("风残",99,49,0);
g.drawString("召狼",133,49,0);
g.drawString("召熊",31,71,0);
g.drawString("召龙",65,71,0);
g.drawString("隐身",99,71,0);
g.drawString("遁走",133,71,0);
g.drawString("附身",31,93,0);
g.drawString("回血",65,93,0);
g.drawString("回气",99,93,0);
g.drawString("攻击",133,93,0);
if(i<11)
{
if(s[i]==0)
g.setColor(255,0,0);
else
g.setColor(0,0,255);
}
else
g.setColor(0,0,255);
g.drawRect(i%4*34+30,i/4*22+48,34,18);
}
/*属性菜单绘制*/
if(pm)
{
g.setFont(Loading.myfont);
g.setColor(104,135,196);
g.fillRect(0,0,160,128);
g.setColor(0,0,0);
g.drawRect(0,0,40,127);
g.drawRect(40,0,119,127);
g.drawString("属性",5,10,0);
g.drawString("技能",5,37,0);
g.drawString("任务",5,64,0);
g.drawString("装备",5,91,0);
switch(i)
{
case 0://属性显示
g.drawString("血:"+ts(l)+"/"+ts(lm),41,5,0);
g.drawString("气:"+ts(m)+"/"+ts(mm),41,25,0);
g.drawString("经验值: ",41,45,0);
g.drawString(ts(ex)+"/"+ts(m(le+1)),41,65,0);
g.drawString("攻击:"+ts(d)+"+"+ts(addPd+d*addPdP/100),41,85,0);
g.drawString("当前等级:"+ts(le),41,105,0);
break;
case 1://技能显示
if(j<4)
{
g.drawString("火球:"+(s[0]>0?"等级"+ts(s[0]):"未修炼"),41,5,0);
g.drawString("落星:"+(s[1]>0?"等级"+ts(s[1]):"未修炼"),41,27,0);
g.drawString("风残:"+(s[2]>0?"等级"+ts(s[2]):"未修炼"),41,49,0);
g.drawString("召狼:"+(s[3]>0?"等级"+ts(s[3]):"未修炼"),41,71,0);
}
else
if(j<8)
{
g.drawString("召熊:"+(s[4]>0?"等级"+ts(s[4]):"未修炼"),41,5,0);
g.drawString("召龙:"+(s[5]>0?"等级"+ts(s[5]):"未修炼"),41,27,0);
g.drawString("隐身:"+(s[6]>0?"等级"+ts(s[6]):"未修炼"),41,49,0);
g.drawString("遁走:"+(s[7]>0?"等级"+ts(s[7]):"未修炼"),41,71,0);
}
else
{
g.drawString("附身:"+(s[8]>0?"等级"+ts(s[8]):"未修炼"),41,5,0);
g.drawString("治疗:"+(s[9]>0?"等级"+ts(s[9]):"未修炼"),41,27,0);
g.drawString("回气:"+(s[10]>0?"等级"+ts(s[10]):"未修炼"),41,49,0);
}
g.drawString("技能点:"+ts(sp),41,98,0);
g.setColor(255,0,255);
g.drawRect(40,4+j%4*22,100,20);
break;
case 2://任务显示
if(task)
{
g.drawString("收集物品",50,5,0);
g.drawString("鹤灵草:"+(tn[0]==10?"完成":ts(tn[0])),41,25,0);
g.drawString("狼牙:"+(tn[1]==5?"完成":ts(tn[1])),41,45,0);
g.drawString("米云香:"+(tn[2]==10?"完成":ts(tn[2])),41,65,0);
g.drawString("雪岩:"+(tn[3]==5?"完成":ts(tn[3])),41,85,0);
if(task2)
g.drawString("虎皮: "+(tn[4]==20?"完成":ts(tn[4])),41,105,0);
}
break;
case 3://装备显示
String temp=new String();
for(int ii=0;ii<6;ii++)
{
switch(weapon[ii])
{
case 0:
temp="短剑";
break;
case 1:
temp="铁剑";
break;
case 2:
temp="守护剑";
break;
case 3:
temp="青剑";
break;
case 4:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -