📄 e070f72a48cf001216b0addf11818cf9
字号:
break;
}
}
}
/*五键或左软键的功能*/
public void FIRE()
{
if(gameMenu)
{
if(i==4)
{
gameMenu=!gameMenu;
repaint();
}
else
if(i==3)//返回主菜单
{
if(GM.playOn)
bgThread.go();
// playsound.cancel();
// myplayer.close();
// myplayer=null;
gameMenu=false;
screen=null;
MG.showGame=false;
GM.cI();
MG.show(MG.gm);
}
else
if(i==0)//帮助
{
if(GM.mg.t==null)
{
GM.mg.back1=new Command("",Command.BACK,0);
GM.mg.back2=new Command("返回",Command.SCREEN,0);
GM.mg.t=new Form("帮助");
GM.mg.t.append("游戏背景:");
GM.mg.t.append("为完成父亲的遗愿,李景鸿决定前往蓬莱仙岛寻找徐敬业与骆宾王的遗孀,辅助完成复国大业。但一路上困难重重,李景鸿能否顺利到达蓬莱仙岛呢?又能否完成父亲的遗愿呢?");
GM.mg.t.append(" ");
GM.mg.t.append("操作方法:");
GM.mg.t.append("游戏中用方向键和2、4、6、8键控制主角移动以及进行菜单选择,5键或OK键选定, 3键调出/关闭属性菜单,左软键调出操作菜单,可查看帮助信息,保存游戏或回到主菜单。");
GM.mg.t.append(" ");
GM.mg.t.append("关键提示:");
GM.mg.t.append("玩家每次升级将得到一点技能属性用来学习技能,每项技能所能修炼的最高等级受主角等级限制,技能等级越高,效果越显著。使用“召狼”等技能时,召唤出的宠物将被优先攻击。使用技能会消耗主角的“气力”,“回气”技能将耗费一定数量的金钱。主角战死会损失一定比例的经验及金钱。");
GM.mg.t.append("在战斗过程中菜单选项将不会响应。");
GM.mg.t.append(" ");
GM.mg.t.append("招式详解:");
GM.mg.t.append("火球:用内力聚成一个火球,对单个敌人造成极大伤害");
GM.mg.t.append("落星:在天空中形成流星般的巨石,砸向全部敌人");
GM.mg.t.append("风残:耗费自身的血和气来形成一股飓风,对全部敌人造成较大伤害");
GM.mg.t.append("召狼:召唤精灵狼来辅助战斗,生命力较弱但攻击力很强");
GM.mg.t.append("召熊:召唤精灵熊来辅助战斗,攻击力很弱但生命力较强,可以用作战斗中的护盾");
GM.mg.t.append("召龙:召唤神龙来辅助战斗,可以反弹敌人部分攻击并反伤敌人");
GM.mg.t.append("隐身:在数回合内主角将不受攻击,但使用附身或攻击敌人则会失效");
GM.mg.t.append("遁走:从战斗中直接逃走,技能等级高则逃走成功率大");
GM.mg.t.append("附身:召唤影子与主角并肩作战,使主角生命力和攻击力按比例上升");
GM.mg.t.append("回血:恢复主角一定比例的生命力");
GM.mg.t.append("回气:恢复主角一定比例的气力,但要耗费一定量的金钱");
GM.mg.t.append("攻击:使用普通攻击对敌单体造成伤害");
GM.mg.t.addCommand(GM.mg.back1);
GM.mg.t.addCommand(GM.mg.back2);
GM.mg.t.setCommandListener(GM.mg);
MG.show(GM.mg.t);
MG.showHelp=true;
}
}
else
if(i==2)//音效处理
{
GM.playOn=!GM.playOn;
bgThread.go();
gameMenu=false;
repaint();
}
else//保存游戏
{
SA s=new SA();
s.s();
s=null;
gameMenu=false;
repaint();
}
}
else
if(pm)
{
if(i==1&&sp>0&&s[j]<10)//升级技能
{
if(s[j]==0||le>=3*s[j])
{
if(j==9||j==10||j==7)
{
if(s[j]<5)
{
s[j]++;
sp--;
}
}
else
{
s[j]++;
sp--;
}
}
repaint(0,0,160,128);
}
else
if(i==3)//选择装备
{
if(weapon[j]!=9)
{
curweapon=weapon[j];
addMd=0;
addPd=0;
addPdP=0;
switch(curweapon)
{
case 0:
addPd=5;
stealB=10;
break;
case 1:
addPd=10;
stealB=25;
break;
case 2:
addPd=15;
stealB=45;
break;
case 3:
addMd=10;
break;
case 4:
addMd=20;
break;
case 5:
addMd=30;
break;
case 6:
addPdP=15;
break;
case 7:
addPdP=25;
break;
case 8:
addPdP=35;
break;
default:
break;
}
i=0;
D=d+addPd+addPdP*d/100;
if(atm)
spi[0].d=D;
repaint(0,0,160,128);
}
}
}
else
if(tm)
{
if(sl!=i)
{
if(sl!=0)
{
if(gold>=100)
{
gold-=100;
cm(i);
}
else
{
tip="银两不够";
tm=false;
repaint();
}
}
else
cm(i);
}
else
{
tm=false;
repaint();
}
}
else
if(am)
{
if((i<11&&s[i]>0)||i==11)
sat(i);
}
else
if(tip!=null)
{
tip=null;
dlgm=null;
dlgpic=null;
removeCommand(con);
repaint();
}
else
if(me)//对话控制
{
if(curnpc<2)
{
if(sn==dlgM.length-1)
{
removeCommand(con);
me=false;
dlg[curnpc]=true;
dlgpic=null;
}
else
{
sn++;
createDlgPic(dlgM[sn],8);
}
repaint();
}
else
switch(curnpc)
{
case 2://长须仙人
if(sn==2)
{
dlg[curnpc]=true;
dlgpic=null;
me=false;
removeCommand(con);
cm(5);
}
else
{
sn++;
createDlgPic(dlgM[sn],8);
repaint();
}
break;
case 3://徐和骆
if(sn==5)
{
gold+=10000;
task2=true;
sn++;
}
else
if(sn==6||sn==7)
{
removeCommand(con);
me=false;
dlg[curnpc]=true;
dlgpic=null;
}
else
{
sn++;
createDlgPic(dlgM[sn],8);
}
repaint();
break;
case 6://船工
if(i==0)
{
if(boat)
{
tip="你已经有船了";
me=false;
}
else
if(gold>=600)
{
gold-=600;
boat=true;
me=false;
tip="买卖成功";
}
else
{
tip="银两不够";
me=false;
}
}
else
{
me=false;
dlgpic=null;
removeCommand(con);
}
repaint();
break;
case 5://多九公
switch(sn)
{
case 0:
sn++;
createDlgPic(dlgM[sn],8);
repaint();
break;
case 1:
if(i==0)
{
sn++;
createDlgPic(dlgM[sn],8);
i=0;
}
else
if(i==1)
{
task=true;
sn=3;
createDlgPic(dlgM[sn],8);
}
else
{
me=false;
dlgpic=null;
removeCommand(con);
}
repaint();
break;
case 2:
if(i==0)
{
if(gold>=10000)
{
gold-=10000;
for(int ii=0;ii<11;ii++)
{
while(s[ii]>0)
{
s[ii]--;
sp++;
}
}
me=false;
dlgpic=null;
removeCommand(con);
}
else
{
tip="银两不够";
me=false;
}
}
else
{
me=false;
dlgpic=null;
}
repaint();
break;
case 3:
{
me=false;
dlgpic=null;
}
repaint();
default:
break;
}
break;
case 4://竞技官
if(i==0)
{
if(gold>=350)
{
gold-=350;
me=false;
dlgpic=null;
removeCommand(con);
cm(6);//进入竞技场
killCount=0;
}
else
{
tip="银两不够";
me=false;
}
}
else
{
me=false;
dlgpic=null;
removeCommand(con);
}
repaint();
break;
default:
break;
}
}
else
if(win)//战斗胜利后回到场景
{
addCommand(gmenu);
if(sl!=6)
{
win=false;
removeCommand(con);
repaint();
}
else//如果在竞技场游戏则对打斗场次进行计数,到10次就回到勇士国
{
win=false;
removeCommand(con);
if(killCount==10)
{
gold+=10000;
cm(3);
}
else
repaint();
}
}
else
if(die)//死亡后重生
{
addCommand(gmenu);
removeCommand(con);
die=false;
atm=false;
l=lm;
m=mm;
ex-=(ex-m(le))*20/100;
gold=gold*70/100;
cm(0);
}
if(tip==null&&!me&&!atm&&!pm&&!gameMenu)
addCommand(gmenu);
}
public void keyReleased(int keyCode)
{
int act=getGameAction(keyCode);
if(act==Canvas.UP||act==Canvas.DOWN||act==Canvas.LEFT||act==Canvas.RIGHT)
{
walk=false;
}
}
/*构建一个从0到n-1范围的随机数*/
public int rR(int n)
{
int r =rd.nextInt();
if(r<0)
r=-r;
r=r%n;
return r;
}
/*移动方式选择,移动可能性判断和移动计时器触发*/
public void stm()
{
System.out.println("startmove");
if(c()>10&&c()<=20)//怪物出现的Tile
{
fi(chn(),c()-10);//调出战斗场景
if(!atm)//没有怪出现
{
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://静止状态
// 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://静止状态
repaint();
break;
}
walk=true;
mo=new TI(this,7);
ti.schedule(mo,0,300);
}
else
{
switch(dr/3)
{
case 0://向左
x-=16;
break;
case 1://向下
y+=16;
break;
case 2://向上
y-=16;
break;
case 3://向右
x+=16;
break;
}
if(x>=w/2)
{
if(x<=W[sl]*16-w/2)
x0=x-w/2;
else
x0=W[sl]*16-w;
}
else
x0=0;
if(y>=64)
{
if(y<=H[sl]*16-h/2)
y0=y-h/2;
else
y0=H[sl]*16-h;
}
else
y0=0;
}
}
else
if(c()>1&&c()<10)//对话NPC出现的Tile
{
if(c()==4)
{
if(tn[0]==10&&tn[1]==5&&tn[2]==10&&tn[3]==5)
message(c());
}
else
message(c());
}
else
if(c()==99)//场景出入口
{
if(boat)
{
tm=true;
i=0;
}
else
tip="请去找船工买船";
repaint();
}
else
if(c()==98)//宝箱
{
int ii=rR(2*sl+1)*50;
gold+=ii*(2*sl+1);
tip=ii>0?"获得"+ts(ii*(2*sl+1))+"两银子":"一无所获";
switch(dr/3)//将宝箱所在Tile设为平地
{
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://向左
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -