📄 mygamecanvas.java
字号:
{
return true;
}
else return false;
}
private void isInVillageField()
{
if(villagefield==null)return;
for(int i=0;i<villagefield.length;i++)
{
if(isInField(villagefield[i]))
{
saveTemp[0]=mapWidth;
saveTemp[1]=mapHeight;
saveTemp[2]=(villagefield[i][1]-1)*CHECKWIDTH;//myhero.getX();
saveTemp[3]=(villagefield[i][0]-1)*CHECKHEIGHT;//myhero.getY();
readVillageMap("villageMap"+villagefield[i][4]);
status=STATUS_VILLAGE;
break;
}
}
}
private void isInVilldoorField()
{
if(villdoorfield==null)return;
for(int i=0;i<villdoorfield.length;i++)
{
if(isInField(villdoorfield[i]))
{
mapWidth=saveTemp[0];
mapHeight=saveTemp[1];
for(int j=0;j<villager.length;j++)
{
if(villager[j]!=null)
{
lm.remove(villager[j]);
villager[j] = null;
}
}
if(villLayer!=null)
{
lm.remove(villLayer);
villLayer = null;
}
if(villbrLayer!=null)
{
lm.remove(villbrLayer);
villbrLayer = null;
}
lm.append(mapLayer);
lm.append(mapbrLayer);
myhero.setBarrierLayer(mapbrLayer);
myhero.setPosition(villdoorfield[i][5]*CHECKWIDTH,villdoorfield[i][4]*CHECKHEIGHT);
setView(myhero);
status=STATUS_MOVE;
break;
}
}
}
private void isInBattleField()
{
if(battlefield==null)return;
for(int i=0;i<battlefield.length;i++)
{
if(isInField(battlefield[i])&&battlefield[i][5]==0)
{
saveTemp[0]=mapWidth;
saveTemp[1]=mapHeight;
saveTemp[2]=myhero.getX();
saveTemp[3]=myhero.getY();
readFightMap("fightMap"+battlefield[i][4]);
battlefield[i][5]=1;
break;
}
}
}
private void waitDo()
{
if(enemyP>=enemy.length&&heroP>=hero.length)
{
heroP=0;
enemyP=0;
}
if(r.nextInt()%2==0)
{
if(enemyP<enemy.length&&enemy[enemyP]!=null&&!enemy[enemyP].getIsDeath())
{
curSoldier=enemy[enemyP];
curSoldier.setCheckMsg(checkMsg);
status=enemyAction.think(curSoldier,checkMsg,hero);
}
enemyP++;
}
else
{
if(heroP<hero.length&&hero[heroP]!=null&&!hero[heroP].getIsDeath())
{
curSoldier=hero[heroP];
curSoldier.setCheckMsg(checkMsg);
status=STATUS_FIGHT_MOVE;
}
heroP++;
}
boolean isEnd = true;
for(int i=0;i<enemy.length;i++)
{
if(enemy[i]!=null)
{
if(!enemy[i].getIsDeath())isEnd = false;
}
}
if(isEnd)
{
status = STATUS_DIALOG;
dialog = ftDlgEnd;
dialogIdx = 0;
dlgFromFlg = DIALOG_FIGHTEND;
return;
}
isEnd = true;
for(int i=0;i<hero.length;i++)
{
if(hero[i]==null)break;
if(!hero[i].getIsDeath())isEnd = false;
}
if(isEnd)
{
//game over
}
}
private boolean moveView(Sprite myMove)
{
boolean bool = false;
int left = viewX + 40;
int top = viewY +40;
int right = viewX + getWidth() - 40;
int down = viewY + getHeight() - 40;
if(myMove.getX()<left)
{
if(viewX > 0)
{
viewX -= 4;
if(viewX<0)viewX=0;
bool = true;
}
}
if(myMove.getX()+myMove.getWidth()>right)
{
if(viewX +getWidth() < mapWidth)
{
viewX += 4;
if(viewX+getWidth()>=mapWidth)
viewX = mapWidth - getWidth();
bool = true;
}
}
if(myMove.getY()<top)
{
if(viewY > 0)
{
viewY -= 4;
if(viewY<0)viewY = 0;
bool = true;
}
}
if(myMove.getY()+myMove.getHeight()>down)
{
if(viewY +getHeight() < mapHeight)
{
viewY += 4;
if(viewY+getHeight()>=mapHeight)
viewY = mapHeight - getHeight();
bool = true;
}
}
return bool;
}
protected synchronized void keyPressed(int keyCode)
{
if(keyCode == 0) return;
int gameCode = getGameAction(keyCode);
if(status==STATUS_FIGHT_MOVE)
{
key_FIGHT_MOVE(gameCode);
}
else if(status==STATUS_FIGHT_FIGHT)
{
key_FIGHT_FIGHT(gameCode);
}else if(status==STATUS_MENU)
{
key_MENU(gameCode);
}else if(status==STATUS_DIALOG)
{
if(++dialogIdx+DIALOGMAXLINE>dialog.length)
{
status = statusOld;
if(dlgFromFlg == DIALOG_FIGHTEND)
{
if(!eventKey.equals(""))event();
dlgFromFlg = 0;
mapWidth=saveTemp[0];
mapHeight=saveTemp[1];
myhero.setPosition(saveTemp[2],saveTemp[3]);
layer_MOVE();
setView(myhero);
status=STATUS_MOVE;
}
}
}
}
private void input()
{
int key=getKeyStates();
if((key&UP_PRESSED)!=0)
{
myhero.moveUp();
}
if((key&DOWN_PRESSED)!=0)
{
myhero.moveDown();
}
if((key&LEFT_PRESSED)!=0)
{
myhero.moveLeft();
}
if((key&RIGHT_PRESSED)!=0)
{
myhero.moveRight();
}
}
private void key_FIGHT_MOVE(int gameCode)
{
if(!curSoldier.getIsHero())return;
switch(gameCode) {
case UP:
curSoldier.moveUp();
break;
case LEFT:
curSoldier.moveLeft();
break;
case DOWN:
curSoldier.moveDown();
break;
case RIGHT:
curSoldier.moveRight();
break;
case FIRE:
curSoldier.moveStop();
showMenu1();
break;
}
}
private void key_FIGHT_FIGHT(int gameCode)
{
if(!curSoldier.getIsHero())return;
switch(gameCode) {
case UP:
curSoldier.moveFightUp();
break;
case LEFT:
curSoldier.moveFightLeft();
break;
case DOWN:
curSoldier.moveFightDown();
break;
case RIGHT:
curSoldier.moveFightRight();
break;
case FIRE:
curSoldier.fightDo(enemy,lm);
status=STATUS_FIGHT_WAIT;
break;
}
}
private void key_MENU(int gameCode)
{
switch(gameCode) {
case UP:
menu.moveItemUp();
break;
case DOWN:
menu.moveItemDown();
break;
case FIRE:
if(menu.getCurrentItem()=="fight")
{
status=STATUS_FIGHT_FIGHT;
curSoldier.fightStatus(imgSword);
layer_FIGHT();
}else if(menu.getCurrentItem()=="cancel1")
{
status=STATUS_FIGHT_WAIT;
}
}
}
private void showMenu1()
{
status = STATUS_MENU;
menu.initMenu();
menu.addMenuItem("fight","fight");
menu.addMenuItem("cancel1","cancel");
menu.setMenuPosition(true,getWidth(),getHeight(),3);
}
private void drawBloodHp()
{
for(int i=0;i<hero.length;i++)
{
if(hero[i]==null)break;
hero[i].drawBlood(g,viewX,viewY);
hero[i].drawHp(g,viewX,viewY);
hero[i].drawDeath(g,viewX,viewY);
}
for(int i=0;i<enemy.length;i++)
{
if(enemy[i]!=null)
{
enemy[i].drawBlood(g,viewX,viewY);
enemy[i].drawHp(g,viewX,viewY);
enemy[i].drawDeath(g,viewX,viewY);
}
}
}
private void layer_MOVE()
{
if(hero!=null)
{
for(int i=0;i<hero.length;i++)
{
if(hero[i]!=null)lm.remove(hero[i]);
}
}
if(enemy!=null)
{
for(int i=0;i<enemy.length;i++)
{
if(enemy[i]!=null)
{
lm.remove(enemy[i]);
enemy[i]=null;
}
}
}
if(fightLayer!=null)
{
lm.remove(fightLayer);
fightLayer = null;
}
lm.append(myhero);
lm.append(mapLayer);
lm.append(mapbrLayer);
}
private void layer_FIGHT()
{
lm.remove(myhero);
lm.remove(mapLayer);
lm.remove(mapbrLayer);
if(curSoldier.sptSword!=null)lm.append(curSoldier.sptSword);
for(int i=0;i<hero.length;i++)
{
if(hero[i]==null)break;
lm.append(hero[i]);
}
for(int i=0;i<enemy.length;i++)
{
if(enemy[i]==null)break;
lm.append(enemy[i]);
}
lm.append(fightLayer);
}
private String readString(String source,String tag)
{
String strReturn = "";
try{
int i = source.indexOf("<"+tag);
if(i==-1)return "";
i = source.indexOf(">",i+1);
int j = source.indexOf("</"+tag+">",i+1);
if(j==-1)return "";
strReturn = source.substring(i+1,j);
}catch(Exception e){System.out.println("error tag: "+tag);}
return strReturn;
}
private int[] splitStringA(String source,char c)
{
Vector vRetrun = new Vector();
String obj="";
for(int i=0;i<source.length();i++)
{
char a = source.charAt(i);
if(a!=c)
{
obj+=a;
}
else
{
vRetrun.addElement(obj);
obj="";
}
}
vRetrun.addElement(obj);
int [] intRetrun = new int[vRetrun.size()];
try{
for(int i=0;i<intRetrun.length;i++)
{
intRetrun[i] = Integer.parseInt((String)vRetrun.elementAt(i));
}
}catch(Exception e){System.out.println("error:"+source);}
return intRetrun;
}
private String[] splitStringB(String source,char c)
{
Vector vRetrun = new Vector();
String obj="";
for(int i=0;i<source.length();i++)
{
char a = source.charAt(i);
if(a!=c)
{
obj+=a;
}
else
{
vRetrun.addElement(obj);
obj="";
}
}
vRetrun.addElement(obj);
String [] strRetrun = new String[vRetrun.size()];
for(int i=0;i<strRetrun.length;i++)
{
strRetrun[i] = (String)vRetrun.elementAt(i);
}
return strRetrun;
}
private Image loadImage(String pic)
{
Image img=null;
try{
img=Image.createImage(pic);
}catch(Exception exp){exp.printStackTrace();}
return img;
}
private void event()
{
if(eventKey.equals("event1"))
{
Image imgSource = loadImage("/FightChess/hero1.png");
Image imgMyHero = Image.createImage(imgSource,CHECKWIDTH*2,0,CHECKWIDTH*2,imgSource.getHeight(),Sprite.TRANS_NONE);
hero[1] = createSoldier(imgMyHero,true,2,1);
hero[1].setFightPower(10);
hero[1].setDefencePwoer(5);
}
else if(eventKey.equals("event2"))
{
Image imgSource = loadImage("/FightChess/hero1.png");
Image imgMyHero = Image.createImage(imgSource,CHECKWIDTH*4,0,CHECKWIDTH*2,imgSource.getHeight(),Sprite.TRANS_NONE);
hero[2] = createSoldier(imgMyHero,true,0,2);
hero[2].setFightPower(12);
hero[2].setDefencePwoer(6);
imgMyHero = Image.createImage(imgSource,CHECKWIDTH*6,0,CHECKWIDTH*2,imgSource.getHeight(),Sprite.TRANS_NONE);
hero[3] = createSoldier(imgMyHero,true,2,3);
hero[3].setFightPower(8);
hero[3].setDefencePwoer(4);
}
eventKey = "";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -