📄 battlecontroller.java
字号:
import javax.microedition.lcdui.*;
public class BattleController
{
BattleCanvas canvas;
Graphics g;
public BattleController(BattleCanvas canvas)
{
this.canvas=canvas;
this.g=canvas.g;
}
public void keyPressed(int keyCode)
{
int gameAction = KeyMapping.getGameKey(keyCode);
if(gameAction == Canvas.KEY_STAR)
{
GameMIDlet.showFPS=!GameMIDlet.showFPS;
}
if(gameAction == Canvas.GAME_D)
{
GameMIDlet.showMem=!GameMIDlet.showMem;
}
if(canvas.status==BattleCanvas.STATUS_END)
{
if(gameAction==Canvas.FIRE)
{
canvas.outBattle();
}
}else
if(canvas.status==BattleCanvas.STATUS_BATTLE)
{
//自动战斗时按确定键回到手动方式
if(gameAction==Canvas.FIRE)
{
if(canvas.choosedCommand==BattleCanvas.COMMAND_AUTO)
{
canvas.choosedCommand=BattleCanvas.COMMAND_ATTACK;
}
}
}else
if(canvas.status==BattleCanvas.STATUS_COMMAND)
{
if(gameAction==Canvas.FIRE)
{
//攻击
if(BattleCommand.command[canvas.battleCommand.getCommandIndex()].equals(BattleCommand.COMMAND_ATTACK))
{
canvas.status=BattleCanvas.STATUS_COMMAND_ATTACK;
canvas.choosedCommand=BattleCanvas.COMMAND_ATTACK;
if(canvas.battleHand.getEnemyIndex()>canvas.enemyVC.size()-1)
{
canvas.battleHand.setEnemyIndex(canvas.enemyVC.size()-1);
}
//canvas.nextTurn();
}else
//防御
if(BattleCommand.command[canvas.battleCommand.getCommandIndex()].equals(BattleCommand.COMMAND_DEFENCE))
{
canvas.status=BattleCanvas.STATUS_BATTLE;
canvas.choosedCommand=BattleCanvas.COMMAND_DEFENCE;
canvas.battleMainRole.setCommandDefence(true);
canvas.nextTurn();
}else
//技能
if(BattleCommand.command[canvas.battleCommand.getCommandIndex()].equals(BattleCommand.COMMAND_SKILL))
{
canvas.status=BattleCanvas.STATUS_COMMAND_SKILL;
canvas.choosedCommand=BattleCanvas.COMMAND_SKILL;
canvas.initSkillTab();
//canvas.nextTurn();
}else
//道具
if(BattleCommand.command[canvas.battleCommand.getCommandIndex()].equals(BattleCommand.COMMAND_ITEM))
{
canvas.status=BattleCanvas.STATUS_COMMAND_ITEM;
canvas.choosedCommand=BattleCanvas.COMMAND_ITEM;
canvas.initItemTab();
}else
//自动
if(BattleCommand.command[canvas.battleCommand.getCommandIndex()].equals(BattleCommand.COMMAND_AUTO))
{
canvas.status=BattleCanvas.STATUS_BATTLE;
canvas.choosedCommand=BattleCanvas.COMMAND_AUTO;
canvas.nextTurn();
}else
//逃跑
if(BattleCommand.command[canvas.battleCommand.getCommandIndex()].equals(BattleCommand.COMMAND_ESC))
{
//canvas.status=BattleCanvas.STATUS_BATTLE;
//canvas.command_status=BattleCanvas.COMMAND_STATUS_ESC;
//canvas.nextTurn();
canvas.outBattle();
}
}else
if(gameAction==Canvas.UP)
{
canvas.battleCommand.prevCommand();
}else
if(gameAction==Canvas.DOWN)
{
canvas.battleCommand.nextCommand();
}
}else
if(canvas.status==BattleCanvas.STATUS_COMMAND_ATTACK)
{
if(gameAction==Canvas.FIRE)
{
canvas.battleMainRole.setTarget((BattleSprite)canvas.enemyVC.elementAt(canvas.battleHand.getEnemyIndex()));
canvas.status=BattleCanvas.STATUS_BATTLE;
canvas.nextTurn();
}else
if(gameAction==Canvas.GAME_B)
{
canvas.status=BattleCanvas.STATUS_COMMAND;
}else
if(gameAction==Canvas.UP)
{
canvas.battleHand.prevEnemy();
}else
if(gameAction==Canvas.DOWN)
{
canvas.battleHand.nextEnemy();
}else
if(gameAction==Canvas.LEFT)
{
canvas.battleHand.prevEnemy();
}else
if(gameAction==Canvas.RIGHT)
{
canvas.battleHand.nextEnemy();
}
}else
if(canvas.status==BattleCanvas.STATUS_COMMAND_ITEM)
{
if(gameAction==Canvas.FIRE)
{
if(canvas.matTab.getRowIndex()>-1)
{
canvas.matTab.matCommand.setCommand(new String[]{MatCommand.COMMAND_USE,MatCommand.COMMAND_CANCEL});
canvas.matTab.setShowCommand(true);
canvas.status=BattleCanvas.STATUS_COMMAND_ITEM_COMMAND;
}
else
{
canvas.status=BattleCanvas.STATUS_COMMAND;
canvas.matTab=null;
}
}else
if(gameAction==Canvas.UP)
{
canvas.matTab.prevRow();
}else
if(gameAction==Canvas.DOWN)
{
canvas.matTab.nextRow();
}
else
if(gameAction==Canvas.GAME_B)
{
canvas.status=BattleCanvas.STATUS_COMMAND;
canvas.matTab=null;
}
}else
if(canvas.status==BattleCanvas.STATUS_COMMAND_ITEM_COMMAND)
{
if(gameAction==Canvas.FIRE)
{
if(canvas.matTab.matCommand.command[canvas.matTab.matCommand.getCommandIndex()].equals(MatCommand.COMMAND_USE))
{
//设置要吃的药品
canvas.useMat=canvas.matTab.getChoosedElement();
canvas.matTab.setShowCommand(false);
canvas.matTab=null;
canvas.status=BattleCanvas.STATUS_BATTLE;
canvas.nextTurn();
}else
if(canvas.matTab.matCommand.command[canvas.matTab.matCommand.getCommandIndex()].equals(MatCommand.COMMAND_CANCEL))
{
canvas.status=BattleCanvas.STATUS_COMMAND_ITEM;
canvas.matTab.setShowCommand(false);
}
}else
if(gameAction==Canvas.UP)
{
canvas.matTab.matCommand.prevCommand();
}else
if(gameAction==Canvas.DOWN)
{
canvas.matTab.matCommand.nextCommand();
}
}
else
if(canvas.status==BattleCanvas.STATUS_COMMAND_SKILL)
{
if(gameAction==Canvas.FIRE)
{
if(canvas.skillTab.getRowIndex()>-1)
{
if(GameMIDlet.mainRole.getMagic()>=canvas.skillTab.getChoosedElement().getUseMagic())
{
canvas.status=BattleCanvas.STATUS_COMMAND_SKILL_ATTACK;
if(canvas.battleHand.getEnemyIndex()>canvas.enemyVC.size()-1)
{
canvas.battleHand.setEnemyIndex(canvas.enemyVC.size()-1);
}
}
else
{
canvas.myAlert = new MyAlert(canvas);
canvas.myAlert.start();
canvas.myAlert.setMsg("MP不够");
}
}
else
{
canvas.status=BattleCanvas.STATUS_COMMAND;
canvas.battleMainRole.setBattleSkill(null);
canvas.skillTab=null;
}
}else
if(gameAction==Canvas.UP)
{
canvas.skillTab.prevRow();
}else
if(gameAction==Canvas.DOWN)
{
canvas.skillTab.nextRow();
}
else
if(gameAction==Canvas.GAME_B)
{
canvas.status=BattleCanvas.STATUS_COMMAND;
canvas.battleMainRole.setBattleSkill(null);
canvas.skillTab=null;
}
}
else
if(canvas.status==BattleCanvas.STATUS_COMMAND_SKILL_ATTACK)
{
if(gameAction==Canvas.FIRE)
{
if(canvas.battleHand.getEnemyIndex()>-1)
{
canvas.battleMainRole.setTarget((BattleSprite)canvas.enemyVC.elementAt(canvas.battleHand.getEnemyIndex()));
canvas.battleMainRole.setBattleSkill(canvas.skillTab.getChoosedElement());
canvas.status=BattleCanvas.STATUS_BATTLE;
canvas.choosedCommand=BattleCanvas.COMMAND_SKILL;
canvas.nextTurn();
}
}else
if(gameAction==Canvas.GAME_B)
{
canvas.status=BattleCanvas.STATUS_COMMAND_SKILL;
}else
if(gameAction==Canvas.UP)
{
canvas.battleHand.prevEnemy();
}else
if(gameAction==Canvas.DOWN)
{
canvas.battleHand.nextEnemy();
}else
if(gameAction==Canvas.LEFT)
{
canvas.battleHand.prevEnemy();
}else
if(gameAction==Canvas.RIGHT)
{
canvas.battleHand.nextEnemy();
}
}
}
protected void keyRepeated(int keyCode)
{
int gameAction = KeyMapping.getGameKey(keyCode);
if(canvas.status==BattleCanvas.STATUS_COMMAND)
{
if(gameAction==Canvas.UP)
{
}else
if(gameAction==Canvas.DOWN)
{
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -