⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 battlecontroller.java

📁 《神州》RPG游戏引擎
💻 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 + -