📄 swordcanvas.java
字号:
else
if(!isProMenu&&!isTranMenu&&!isFighting&&!isWin&&!isDie&&!isTalking&&strTip==null&&!isGameMenu)
{
if(moveTask==null)
{
if(direction/3!=3)
{
direction=9;
repaint();
}
else
setMoveTask();
}
}
else
if(isAttMenu)
{
i=i+1<=11?i+1:0;
repaint();
}
else
if(isTalking&&strTip==null)//对话时候的菜单选项
{
if(curNPC==6||curNPC==4)
i=i+1<=1?i+1:0;
else
if(curNPC==5)
{
switch(sn)
{
case 1:
i=i+1<=2?i+1:0;
break;
case 2:
i=i+1<=1?i+1:0;
break;
default:
break;
}
}
repaint();
}
break;
case FIRE:
FIRE();
break;
default:
switch(keyCode)
{
case KEY_NUM1://1键取消
// if(isAttMenu&&!isProMenu)
// {
// isAttMenu=false;
// attackNumber=4;
// repaint();
// }
// else
if(isProMenu&&i==2)
{
gold+=(weapon[j]%3+1)*(weapon[j]%3+1)*100;
if(curweapon==weapon[j])
curweapon=9;
weapon[j]=9;
addPower=0;
addMagic=0;
addPdP=0;
totalPower=basicPower;
repaint(0,0,240,309);
}
break;
case -6:
FIRE();
break;
default:
break;
}
break;
}
}
}
public void FIRE()
{
if(isGameOver){
MenuCanvas.loadResource();
SwordMIDlet.show(SwordMIDlet.menuCanvas);
MenuCanvas.se.stopSound(mapPlayer);
}
if(isGameMenu)
{
if(i==4)
{
isGameMenu=!isGameMenu;
repaint();
}
else
if(i==3)
{
SwordStore store=new SwordStore();
store.save();
store=null;
isGameMenu=false;
screen=null;
MenuCanvas.loadResource();
SwordMIDlet.show(SwordMIDlet.menuCanvas);
MenuCanvas.se.stopSound(mapPlayer);
}
else
if(i==0)
{if(popup == null)popup = new Popup();
showPopup(helpStr.toCharArray(), Popup.ALT_OK, 0, 0, 0);
}
else
if(i==2)
{
MenuCanvas.isAudioOn=!MenuCanvas.isAudioOn;
if(MenuCanvas.isAudioOn)
MenuCanvas.se.playSound(mapPlayer);
else
MenuCanvas.se.pauseSound(mapPlayer);
isGameMenu=false;
repaint();
}
else
{
SwordStore store=new SwordStore();
store.save();
store=null;
isGameMenu=false;
repaint();
}
}
else
if(isProMenu)
{
if(i==2&&skillpoint>0&&skillArray[j]<10)
{
if(skillArray[j]==0||level>=3*skillArray[j])
{
if(j==9||j==10||j==7)
{
if(skillArray[j]<5)
{
skillArray[j]++;
skillpoint--;
}
}
else
{
skillArray[j]++;
skillpoint--;
}
}
repaint(0,0,160,128);
}
else
if(i==3)
{
if(weapon[j]!=9)
{
curweapon=weapon[j];
addMagic=0;
addPower=0;
addPdP=0;
switch(curweapon)
{
case 0:
addPower=5;
stealB=10;
break;
case 1:
addPower=10;
stealB=25;
break;
case 2:
addPower=15;
stealB=45;
break;
case 3:
addMagic=10;
break;
case 4:
addMagic=20;
break;
case 5:
addMagic=30;
break;
case 6:
addPdP=15;
break;
case 7:
addPdP=25;
break;
case 8:
addPdP=35;
break;
default:
break;
}
totalPower=basicPower+addPower+addPdP*basicPower/100;
if(isFighting)
SPI[0].basicPower=totalPower;
repaint();
}
}
}
else
if(isTranMenu)
{
if(sl!=i)
{
if(sl!=0)
{
if(gold>=100)
{
gold-=100;
changeMap(i);
}
else
{
strTip="银两不够";
isTranMenu=false;
repaint();
}
}
else
changeMap(i);
}
else
{
isTranMenu=false;
repaint();
}
}
else
if(isAttMenu)
{
if((i<11&&skillArray[i]>0)||i==11)
setAttack(i);
}
else
if(strTip!=null)
{
strTip=null;
strDlg=null;
imgDlg=null;
repaint();
}
else
if(isTalking)
{
if(curNPC<2)
{
if(sn==dlgM.length-1)
{
isTalking=false;
dlg[curNPC]=true;
imgDlg=null;
}
else
{
sn++;
createDialogImage(dlgM[sn]);
}
repaint();
}
else
switch(curNPC)
{
case 2:
if(sn==2)
{
dlg[curNPC]=true;
imgDlg=null;
isTalking=false;
changeMap(5);
}
else
{
sn++;
createDialogImage(dlgM[sn]);
repaint();
}
break;
case 3:
if(sn==5)
{
gold+=10000;
isTask2=true;
sn++;
}
else
if(sn==6||sn==7)
{
//removeCommand(con);
isTalking=false;
dlg[curNPC]=true;
imgDlg=null;
}
else
{
sn++;
createDialogImage(dlgM[sn]);
}
repaint();
break;
case 6://船工
if(dlgMenuChoose==0)
{
if(hasBoat)
{
strTip="你已经有船了";
isTalking=false;
}
else
if(gold>=600)
{
gold-=600;
hasBoat=true;
isTalking=false;
strTip="买卖成功";
}
else
{
strTip="银两不够";
isTalking=false;
}
}
else
{
isTalking=false;
imgDlg=null;
}
repaint();
break;
case 5://洪七公
switch(sn)
{
case 0:
if(dlgMenuChoose==0)
{
sn=1;
dlgMenu=new String[2];
dlgMenu[0]="现在分配";
dlgMenu[1]="以后再说";
}
else
if(dlgMenuChoose==1)
{
dlgMenu=null;
isTask=true;
sn=2;
}
else
{
isTalking=false;
imgDlg=null;
return;
}
createDialogImage(dlgM[sn]);
repaint();
break;
case 2:
{
isTalking=false;
imgDlg=null;
//removeCommand(con);
}
repaint();
break;
case 1:
if(dlgMenuChoose==0)
{
if(gold>=10000)
{
gold-=10000;
for(int ii=0;ii<11;ii++)
{
while(skillArray[ii]>0)
{
skillArray[ii]--;
skillpoint++;
}
}
isTalking=false;
imgDlg=null;
//removeCommand(con);
}
else
{
strTip="银两不够";
isTalking=false;
}
}
else
{
isTalking=false;
imgDlg=null;
}
repaint();
break;
default:
break;
}
break;
case 4://竞技官
if(dlgMenuChoose==0)
{
if(gold>=350)
{
gold-=350;
isTalking=false;
imgDlg=null;
changeMap(6);//进入竞技场
killCount=0;
}
else
{
strTip="银两不够";
isTalking=false;
}
}
else
{
isTalking=false;
imgDlg=null;
}
repaint();
break;
default:
break;
}
}
else
if(isWin)
{
if(sl!=6)
{
isWin=false;
updateMan=false;
winString=new Vector(0,1);
repaint();
}
else
{
isWin=false;
if(killCount==10)
{
gold+=10000;
changeMap(3);
}
else
repaint();
}
}
else
if(isDie)//死亡后重生
{
isDie=false;
isFighting=false;
life=maxlife;
energy=maxenergy;
experience-=(experience-getExperience(level))*20/100;
gold=gold*70/100;
changeMap(0);
}
else
if(curKey==-6)
{
isGameMenu=true;
repaint();
}
}
public void keyReleased(int keyCode)
{
int action = getGameAction(keyCode);
if(action==Canvas.UP||action==Canvas.DOWN||action==Canvas.LEFT||action==Canvas.RIGHT)
{
isWalking=false;
}
}
public void drawGameMenu(Graphics g)
{
g.setColor(0,0,100);
g.fillRoundRect(71,73,86,118,30,30);
g.setColor(getRandom(255),getRandom(255),getRandom(255));
g.drawRoundRect(71,73,86,118,30,30);
g.setColor(0);
g.drawRoundRect(70,72,88,120,30,30);
g.setColor(getRandom(255),getRandom(255),getRandom(255));
g.drawRoundRect(69,71,90,122,30,30);
String[] text=new String[]{"帮助说明","保存游戏",MenuCanvas.isAudioOn?"关闭音效":"打开音效","回主菜单","继续游戏"};
for(int ii=0;ii<5;ii++)
{
if(i==ii)
MenuCanvas.ge.drawStringShadow(g,0x00ff00,0x00ff00,0,text[ii],113,ii*20+80,g.HCENTER|g.TOP);
else
MenuCanvas.ge.drawStringShadow(g,0,0,-1,text[ii],113,ii*20+80,g.HCENTER|g.TOP);
}
}
public int getRandom(int n)
{
int r =rand.nextInt(); if(r<0)
r=-r;
r=r%n; return r; }
public void drawWeather(Graphics g1)
{
switch(weatherTask.s)
{
case 0://雨天
int energy=-10;
if(isWeather)
energy=-10+getRandom(5);
g1.setColor(-1);
for(int j=0;j<14;j++)
for(int i=energy+j;i<270;i+=30)
{
if(getRandom(100)<80)
g1.drawLine(i,j*20,i+6,j*20+6);
}
break;
case 1:
g1.setColor(-1);
if(isWeather)
{
for(int i=snow.length-1;i>0;i--)
{
for(int j=0;j<snow[0].length;j++)
snow[i][j]=snow[i-1][j];
}
for(int j=0;j<snow[0].length;j++)
{
snow[0][j]=200/snow[0].length*j+getRandom(120)-10;
if(snow[0][j]>=0)
snow[0][j]=snow[0][j]*100+getRandom(120);
else
snow[0][j]=snow[0][j]*100-getRandom(120);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -