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

📄 lpmenu.java

📁 一个很好的j2ms的元代码不是很专业的很适合初学者的哦
💻 JAVA
字号:
/**
 * <p>Title: lipeng</p>
 * <p>Description:
 * You cannot remove this copyright and notice.
 * You cannot use this file without the express permission of the author.
 * All Rights Reserved</p>
 * <p>Copyright: lizhenpeng (c) 2004</p>
 * <p>Company: LP&P</p>
 * @author lizhenpeng
 * @version 1.1.1
 * <p>
 * Revise History
 * 2004.07.22 Add a menu entry demoMode V1.1.0
 * 2004.07.22 revise a logic error on init V1.1.1
 * </p>
 */
package lipeng;

import javax.microedition.lcdui.Canvas;



public class LPMenu
{
//method
  public LPMenu(LPIGameManager gm)
  {
    this.gm=gm;
  }

  private void menuSelect(int direct)
  {
    switch(direct)
    {
      case DIRECTION_UP:
        switch(whichActive)
        {
          case MENU_NEW_GAME:
            whichActive=MENU_ABOUT;
            break;
          case MENU_LOAD_GAME:
            whichActive=MENU_NEW_GAME;
            break;
          case MENU_VOL:
            whichActive=MENU_LOAD_GAME;
            break;
          case MENU_EXIT:
            whichActive=MENU_VOL;
            break;
          case MENU_ABOUT:
            whichActive=MENU_EXIT;
            break;
        }
        break;
      case DIRECTION_DOWN:
        switch(whichActive)
        {
          case MENU_NEW_GAME:
            whichActive=MENU_LOAD_GAME;
            break;
          case MENU_LOAD_GAME:
            whichActive=MENU_VOL;
            break;
          case MENU_VOL:
            whichActive=MENU_EXIT;
            break;
          case MENU_EXIT:
            whichActive=MENU_ABOUT;
            break;
          case MENU_ABOUT:
            whichActive=MENU_NEW_GAME;
            break;
        }
        break;
    }
  }

  public void action()
  {
    switch(menuState)
    {
      case MENU_STATE_MAIN:
        if((allAction&LPKeyMask.MASK_KEY_UP_FLAG)!=0)
        {
          menuSelect(DIRECTION_UP);
          allAction&=~LPKeyMask.MASK_KEY_UP_FLAG;
        }
        else if((allAction&LPKeyMask.MASK_KEY_DOWN_FLAG)!=0)
        {
          menuSelect(DIRECTION_DOWN);
          allAction&=~LPKeyMask.MASK_KEY_DOWN_FLAG;
        }
        else if((allAction&LPKeyMask.MASK_KEY_OK_FLAG)!=0)
        {
          switch(whichActive)
          {
            case MENU_NEW_GAME:
              gm.menuBeginNewGame();
              break;
            case MENU_LOAD_GAME:
              gm.menuLoadGame();
              break;
            case MENU_VOL:
              isVolOn=!isVolOn;
              gm.menuAudio();
              break;
            case MENU_EXIT:
              gm.menuExitGame();
              break;
            case MENU_ABOUT:

              //about
              menuState=MENU_STATE_ABOUT;
              gm.menuAbout();
              break;
          }
          allAction&=~LPKeyMask.MASK_KEY_OK_FLAG;
        }
        break;
    }
  }

  public void judgeKeyCode(int keyCode,int GameKeyCode)
  {
    switch(GameKeyCode)
    {
      case Canvas.FIRE:
        if(((allAction&LPKeyMask.MASK_KEY_OK)==0)
           &&((allAction&LPKeyMask.MASK_KEY_OK_FLAG)==0))
        {
          allAction|=LPKeyMask.MASK_KEY_OK|LPKeyMask.MASK_KEY_OK_FLAG;
        }
        break;
      case Canvas.UP:
        if(((allAction&LPKeyMask.MASK_KEY_UP)==0)
           &&((allAction&LPKeyMask.MASK_KEY_UP_FLAG)==0))
        {
          allAction|=LPKeyMask.MASK_KEY_UP|LPKeyMask.MASK_KEY_UP_FLAG;
        }
        break;
      case Canvas.DOWN:
        if(((allAction&LPKeyMask.MASK_KEY_DOWN)==0)
           &&((allAction&LPKeyMask.MASK_KEY_DOWN_FLAG)==0))
        {
          allAction|=LPKeyMask.MASK_KEY_DOWN|LPKeyMask.MASK_KEY_DOWN_FLAG;
        }
        break;
      case Canvas.LEFT:
        if(((allAction&LPKeyMask.MASK_KEY_LEFT)==0)
           &&((allAction&LPKeyMask.MASK_KEY_LEFT_FLAG)==0))
        {
          allAction|=LPKeyMask.MASK_KEY_LEFT|LPKeyMask.MASK_KEY_LEFT_FLAG;
        }
        break;
      case Canvas.RIGHT:
        if(((allAction&LPKeyMask.MASK_KEY_RIGHT)==0)
           &&((allAction&LPKeyMask.MASK_KEY_RIGHT_FLAG)==0))
        {
          allAction|=LPKeyMask.MASK_KEY_RIGHT|LPKeyMask.MASK_KEY_RIGHT_FLAG;
        }
        break;
      default:
        switch(keyCode)
        {
          case Canvas.KEY_NUM2: //up
            if(((allAction&LPKeyMask.MASK_KEY_UP)==0)
               &&((allAction&LPKeyMask.MASK_KEY_UP_FLAG)==0))
            {
              allAction|=LPKeyMask.MASK_KEY_UP|LPKeyMask.MASK_KEY_UP_FLAG;
            }
            break;
          case Canvas.KEY_NUM8: //down
            if(((allAction&LPKeyMask.MASK_KEY_DOWN)==0)
               &&((allAction&LPKeyMask.MASK_KEY_DOWN_FLAG)==0))
            {
              allAction|=LPKeyMask.MASK_KEY_DOWN|LPKeyMask.MASK_KEY_DOWN_FLAG;
            }

            break;
          case Canvas.KEY_NUM4: //left
            if(((allAction&LPKeyMask.MASK_KEY_LEFT)==0)
               &&((allAction&LPKeyMask.MASK_KEY_LEFT_FLAG)==0))
            {
              allAction|=LPKeyMask.MASK_KEY_LEFT|LPKeyMask.MASK_KEY_LEFT_FLAG;
            }

            break;
          case Canvas.KEY_NUM6: //right
            if(((allAction&LPKeyMask.MASK_KEY_RIGHT)==0)
               &&((allAction&LPKeyMask.MASK_KEY_RIGHT_FLAG)==0))
            {
              allAction|=LPKeyMask.MASK_KEY_RIGHT|LPKeyMask.MASK_KEY_RIGHT_FLAG;
            }

            break;
          case Canvas.KEY_NUM5: //ok
            if(((allAction&LPKeyMask.MASK_KEY_OK)==0)
               &&((allAction&LPKeyMask.MASK_KEY_OK_FLAG)==0))
            {
              allAction|=LPKeyMask.MASK_KEY_OK|LPKeyMask.MASK_KEY_OK_FLAG;
            }
            break;
        }
        break;
    }
  }

  public void freeKey(int keyCode,int gameKeyCode)
  {
    switch(gameKeyCode)
    {
      case Canvas.FIRE:
        allAction&=~LPKeyMask.MASK_KEY_OK;
        break;
      case Canvas.UP:
        allAction&=~LPKeyMask.MASK_KEY_UP;
        break;
      case Canvas.DOWN:
        allAction&=~LPKeyMask.MASK_KEY_DOWN;
        break;
      case Canvas.LEFT:
        allAction&=~LPKeyMask.MASK_KEY_LEFT;
        break;
      case Canvas.RIGHT:
        allAction&=~LPKeyMask.MASK_KEY_RIGHT;
        break;
      default:
        switch(keyCode)
        {
          case Canvas.KEY_NUM2: //up
            allAction&=~LPKeyMask.MASK_KEY_UP;
            break;
          case Canvas.KEY_NUM8: //down
            allAction&=~LPKeyMask.MASK_KEY_DOWN;
            break;
          case Canvas.KEY_NUM4: //left
            allAction&=~LPKeyMask.MASK_KEY_LEFT;
            break;
          case Canvas.KEY_NUM6: //right
            allAction&=~LPKeyMask.MASK_KEY_RIGHT;
            break;
          case Canvas.KEY_NUM5:
            allAction&=~LPKeyMask.MASK_KEY_OK;
            break;
        }
        break;
    }
  }

  public void init()
  {
    menuState=MENU_STATE_MAIN;
    whichActive=MENU_NEW_GAME;
    allAction=0;
  }

// property

//public
  public int whichActive;
  public int menuState;
  public int allAction;
  public boolean isVolOn=true;
  private LPIGameManager gm;

//final
  public static final int MENU_NEW_GAME=0;
  public static final int MENU_LOAD_GAME=1;
  public static final int MENU_VOL=3;
  public static final int MENU_EXIT=4;
  public static final int MENU_ABOUT=5;

  public static final int MENU_STATE_MAIN=0;
  public static final int MENU_STATE_ABOUT=2;

  private static final int DIRECTION_UP=0;
  private static final int DIRECTION_DOWN=1;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -