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

📄 game.java

📁 j2me简单实例,j2me教程加源码,希望大家喜欢
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        m_CoverAnimation.currentAnimation.length - 1) {
      return true;
    }
    else {
      return false;
    }
  }

  /**
   * drawSelector
   * 绘制动画的先择光标
   */
  public void drawSelector(String[] str, Graphics m_Graphics) {
    imgx_MenuItems.setAnchor(Graphics.LEFT | Graphics.TOP);
    if (m_LastPosition != m_Position) {

      //#if (NOKIA_S40_V1||NOKIA_S40_V2)
//#             if(m_LastPosition>m_Position)   m_CursorSmallDIS-=MENU_GAP;
//#             else                            m_CursorSmallDIS+=MENU_GAP;
      //#elif (MOTO_V600||MOTO_E398)
//#       if (m_LastPosition > m_Position) {
//#         m_CursorSmallDIS -= MENU_GAP / 2;
//#       }
//#       else {
//#         m_CursorSmallDIS += MENU_GAP / 2;
//#       }
      //#else
            if (m_LastPosition > m_Position) {
                m_CursorSmallDIS -= MENU_GAP / 5;
            } else {
                m_CursorSmallDIS += MENU_GAP / 5;
            }
      //#endif
      if (Math.abs(m_CursorSmallDIS) >= MENU_GAP) {
        m_CursorSmallDIS = 0;
        m_LastPosition = m_Position;
      }
      //绘制菜单的上下滚动按钮
      if (m_LastPosition > m_Position) {

        imgx_MenuItems.drawFrame(m_Graphics, 4, MENU_SCROLLBAR_X - 2,
                                 MENU_SCROLLBAR_TOP_Y);
      }
      if (m_LastPosition < m_Position) {
        imgx_MenuItems.drawFrame(m_Graphics, 6, MENU_SCROLLBAR_X - 2,
                                 MENU_SCROLLBAR_BOTTOM_Y);
      }
    } //~end if (m_LastPosition!=m_Position)

    //绘制菜单的选择框
    imgx_selector.setAnchor(Graphics.RIGHT | Graphics.VCENTER);
    imgx_selector.drawFrame(m_Graphics, 0,
                            MENU_X -
                            m_MenuFont.stringWidth(str[m_Position]) / 2 - 2,
                            MENU_Y + m_LastPosition * MENU_GAP +
                            m_CursorSmallDIS);
    imgx_selector.setAnchor(Graphics.LEFT | Graphics.VCENTER);
    imgx_selector.drawFrame(m_Graphics, 1,
                            MENU_X +
                            m_MenuFont.stringWidth(str[m_Position]) / 2 + 4,
                            MENU_Y + m_LastPosition * MENU_GAP +
                            m_CursorSmallDIS);

    //绘制菜单条
    int oldColor = m_Graphics.getColor();
    m_Graphics.setColor(COLOR_YELLOW);
    m_Graphics.fillRect(MENU_SCROLLBAR_X,
                        MENU_Y +
                        m_LastPosition * MENU_SCROLLBAR_LENGTH / str.length +
                        m_CursorSmallDIS + MENU_SCROLLBAR_CHK, 7,
                        MENU_SCROLLBAR_LENGTH / str.length);
    m_Graphics.setColor(oldColor);

  }

  /**
   * drawGameMenuAnimation
   * 绘制菜单框收缩的动画
   */

  public void drawGameMenuAnimation(Graphics g) {
    m_MenuFrameAnimation.setNextFrame();
    m_MenuFrameAnimation.paint(g, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
                               PieceSprite.TRANS_NONE);
  }

  /**
   * 画主菜单界面
   * @param g Graphics
   */
  protected void doMainMenuState(Graphics g) {
    g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
                Graphics.HCENTER | Graphics.VCENTER);
    drawGameMenuAnimation(g);
    if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
      int currPosition = 0;
      drawSelector(MENU_MAIN, g);
      /* paint menu components */
      /* #0 */
      g.setColor(COLOR_ACTIVE);
      for (int i = 0; i < MENU_MAIN.length; i++) {
        setMenuItemsColor(i, g);
        ToolBox.drawOutlinedText(g, m_MenuFont, MENU_MAIN[i], MENU_X,
                                 MENU_Y + (currPosition++ * MENU_GAP),
                                 Graphics.HCENTER | Graphics.VCENTER);
      }
    }
    if (bSelectKeyDown && bGameMenuAnimationOver()) {
      switch (m_Position) {
        case 0:
          changeState(STATE_GAMEMENU);
          break;
        case 1:
          changeState(STATE_OPTIONSMENU);
          break;
        case 2:
          if (m_Text == null) {
            m_Text = ToolBox.splitText( (Object)this, RES_HELP, HELP_LINE_LEN,
                                       m_HelpFont);
          }
          changeState(STATE_HELP);
          break;
        case 3:
          changeState(STATE_CREDITS);
          break;
        case 4:
          threadLoop = false;
          break;
      }
    }
  }

  /**
   * Logo画面1
   * @param g Graphics
   */
  protected void drawLogo1(Graphics g) {
    g.setColor(255, 255, 255);
    g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.drawImage(imgLogo1, (SCREEN_WIDTH - imgLogo1.getWidth()) / 2,
                (SCREEN_HEIGHT - imgLogo1.getHeight()) / 2,
                Graphics.TOP | Graphics.LEFT);
  }

  /**
   * Logo画面2
   * @param g Graphics
   */
  protected void drawLogo2(Graphics g) {
       g.setColor(255, 255, 255);
    g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.drawImage(imgLogo2, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
                Graphics.HCENTER | Graphics.VCENTER);
  }

  /**
   * 封面画面
   * @param g Graphics
   */
  protected void drawCover(Graphics g) {
    g.setColor(0xffffff);
    g.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    m_CoverAnimation.setNextFrame();
    m_CoverAnimation.paint(g, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
                           PieceSprite.TRANS_NONE);
  }

  /**
   * Loading画面
   * @param g Graphics
   */
  protected void drawLoading(Graphics g) {
    g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.setColor(0);
    g.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.setColor(0x6f5adc);
    g.fillRoundRect(0, (SCREEN_HEIGHT - FONT_HEIGHT) / 2, loadingGuage,
                    FONT_HEIGHT, 4, 4);
    g.setColor(0x6b0584);
    g.fillRoundRect(0 + 2, (SCREEN_HEIGHT - FONT_HEIGHT) / 2 + 2,
                    loadingGuage - 2, FONT_HEIGHT - 2, 3, 3);
    g.setColor(0xFFFFFF);
    g.fillRoundRect(0 + 4, (SCREEN_HEIGHT - FONT_HEIGHT) / 2 + 6,
                    loadingGuage - 4, FONT_HEIGHT - 16, 2, 2);
    g.setColor(255, 255, 255);
    g.drawString(HINT[7], SCREEN_WIDTH / 2, (SCREEN_HEIGHT - FONT_HEIGHT) / 2,
                 Graphics.HCENTER | Graphics.BOTTOM);
    g.drawImage(imgLoading, loadingGuage, (SCREEN_HEIGHT + FONT_HEIGHT) / 2,
                Graphics.BOTTOM | Graphics.LEFT);
  }

  /**
   * 画开始菜单界面
   * @param g Graphics
   */
  protected void doGameMenuState(Graphics g) {
    int currPosition = 0;
    g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
                Graphics.HCENTER | Graphics.VCENTER);
    drawGameMenuAnimation(g);
    if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
      if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
        drawSelector(MENU_GAME, g);
        for (int i = 0; i < MENU_GAME.length; i++) {
          setMenuItemsColor(i, g);
          ToolBox.drawOutlinedText(g, m_MenuFont, MENU_GAME[i], MENU_X,
                                   MENU_Y + (currPosition++ * MENU_GAP),
                                   Graphics.HCENTER | Graphics.VCENTER);
        }
      }
    }
    if (bSelectKeyDown && bGameMenuAnimationOver()) {
      switch (m_Position) {
        case 0: //新游戏

          //currentScreen = 5;
          //currentRole = ROLE_NINJA;
          currentScreen = 0;
          currentRole = ROLE_BOY;
          changeState(STATE_INIT);
          break;
        case 1: //载入游戏
          ReadData();
          changeState(STATE_INIT);
          break;
        case 2: //返回
          changeState(STATE_MAINMENU);
          break;
      }
    }
  }

  /**
   * 画设置菜单界面
   * @param g Graphics
   */
  protected void doOptionsMenuState(Graphics g) {
    int currPosition = 0;
    g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
                Graphics.HCENTER | Graphics.VCENTER);
    drawGameMenuAnimation(g);

    if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
      drawSelector(MENU_OPTIONS, g);
      if (mySound.bSoundOpen) {
        g.setColor(COLOR_ENABLED);
      }
      else {
        g.setColor(COLOR_DISABLED);
      }
      ToolBox.drawOutlinedText(g, m_MenuFont, MENU_SOUND[0], MENU_X,
                               MENU_Y + (currPosition++ * MENU_GAP),
                               Graphics.HCENTER | Graphics.VCENTER);
      /* #1 */
      if (!mySound.bSoundOpen) {
        g.setColor(COLOR_ENABLED);
      }
      else {
        g.setColor(COLOR_DISABLED);
      }
      ToolBox.drawOutlinedText(g, m_MenuFont, MENU_SOUND[1], MENU_X,
                               MENU_Y + (currPosition++ * MENU_GAP),
                               Graphics.HCENTER | Graphics.VCENTER);
      /* #2 */
      g.setColor(COLOR_ACTIVE);
      ToolBox.drawOutlinedText(g, m_MenuFont, MENU_SOUND[2], MENU_X,
                               MENU_Y + (currPosition++ * MENU_GAP),
                               Graphics.HCENTER | Graphics.VCENTER);
    }
    if (bSelectKeyDown && bGameMenuAnimationOver()) {
      changeState(STATE_MAINMENU);
    }
  }

  /**
   * 帮助画面
   * @param g Graphics
   */
  protected void doHelpState(Graphics g) {
    /* configure HelpState look&feel */
    g.setColor(COLOR_ACTIVE);
    helpLines = m_Text.size();
    helpPages = ( (m_Text.size() / HELP_LINES) * HELP_LINES >= m_Text.size()) ?
        m_Text.size() / HELP_LINES :
        m_Text.size() / HELP_LINES + 1;
    currPage = ( (m_Position / HELP_LINES) * HELP_LINES >= m_Position) ?
        m_Position / HELP_LINES + 1 : m_Position / HELP_LINES + 2;
    // helpScroll = imgHelpScroll;

    /* paint background */
    g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
                Graphics.HCENTER | Graphics.VCENTER);
    drawGameMenuAnimation(g);

    if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
      /* paint help text lines */
      for (int i = m_Position; i < helpLines; i++) {
        if (i < m_Position + HELP_LINES) {
          ToolBox.drawOutlinedText(g, m_HelpFont,
                                   (String) m_Text.elementAt(i), HELP_X,
                                   HELP_Y + ( (i - m_Position) * HELP_GAP),
                                   Graphics.LEFT | Graphics.VCENTER);
        }
      }
      /* paint back and counter message */
      g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
      //#if (MOTO_E398||MOTO_V600||MOTO_C650||MOTO_V878)
//#       ToolBox.drawOutlinedText(g, m_HelpFont, HINT[8],
//#                                SCREEN_WIDTH - HELP_BACK_X, HELP_BACK_Y,
//#                                Graphics.LEFT | Graphics.BOTTOM);
//#       ToolBox.drawOutlinedText(g, m_HelpFont,
//#                                "" + currPage + "/" + helpPages, HELP_BACK_X,
//#                                HELP_BACK_Y, Graphics.RIGHT | Graphics.BOTTOM);
//# 
      //#else
            imgx_selector.setAnchor(Graphics.RIGHT | Graphics.BOTTOM);
            imgx_selector.drawFrame(g, 3, HELP_BACK_X, HELP_BACK_Y);
//      ToolBox.drawOutlinedText(g, m_PressAnyKeyFont, MSG_BACK,
//                               HELP_BACK_X, HELP_BACK_Y,
//                               Graphics.RIGHT | Graphics.BOTTOM);
            ToolBox.drawOutlinedText(g, m_PressAnyKeyFont,
                    "" + currPage + "/" + helpPages,
                    SCREEN_WIDTH - HELP_BACK_X, HELP_BACK_Y,
                    Graphics.LEFT | Graphics.BOTTOM);
      //#endif
      /* NOTE - currPosition contains now
       * amount of menu titles */
      /* paint menu scroll images 绘制进度条*/
      int oldColor = g.getColor();
      g.setColor(COLOR_GRAY);
      g.fillRect(MENU_SCROLLBAR_X,
                 MENU_Y + (currPage - 1) * 120 / helpPages +
                 m_CursorSmallDIS + MENU_SCROLLBAR_CHK, 7,
                 120 / helpPages);
      g.setColor(oldColor);

    } //~end if (bSelectKeyDown==false&&bGameMenuAnimationOver())
    if (bSelectKeyDown && bGameMenuAnimationOver()) {
      changeState(STATE_MAINMENU);
    }
  }

  /**
   * 关于画面
   * @param g Graphics
   */
  protected void doCreditsState(Graphics g) {
    /* paint background and credits board */
    g.setClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
    g.drawImage(imgMenu, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
                Graphics.HCENTER | Graphics.VCENTER);
    /* paint Game Menu Animation*/
    drawGameMenuAnimation(g);

    if (bSelectKeyDown == false && bGameMenuAnimationOver()) {
      g.drawImage(imgAbout, CREDITS_BOARD_X,

⌨️ 快捷键说明

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