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

📄 gameoptions.java

📁 这是我在原来单位的时候写的一个坦克大战的J2ME游戏的代码,可以给其他作J2ME游戏的人作个参考
💻 JAVA
📖 第 1 页 / 共 5 页
字号:

 return GameLogic.m_gamePoints;

 }

 private void createTankChoice() {
   try {
     m_chooseTankImage = Image.createImage(
         "/tank/map_res/choosetank_choice.png");
     m_commanderIconImage = Image.createImage(
         "/tank/map_res/choosetank_commander.png");

     m_commanderIconImageSprite = new Sprite(m_commanderIconImage,
                                             COMMANDER_ICON_WIDTH,
                                             COMMANDER_ICON_HEIGHT);
     m_focusedSprite = new Sprite(m_chooseTankImage, CHOOSE_TANK_IMAGE_WIDTH,
                                  CHOOSE_TANK_IMAGE_HEIGHT);
     m_focusedSprite.setFrame(TANK_CHOICE_INDEX_FOCUSED);
     m_layerManager.insert(m_focusedSprite, 0);

     m_chooseTankImageSprite = new Sprite[CHOOSE_TANK_SPRITE_COUNTS];
     for (int i = 0; i < CHOOSE_TANK_SPRITE_COUNTS; i++) {
       m_chooseTankImageSprite[i] = new Sprite(m_chooseTankImage,
                                               CHOOSE_TANK_IMAGE_WIDTH,
                                               CHOOSE_TANK_IMAGE_HEIGHT);
       //display all the tanks
       int points = getGamePoints();
       if (points >= POINTS_FUTURE_TANK) {
         m_chooseTankImageSprite[i].setFrame(TANK_CHOICE_INDEX_RETIRED + i);
       }
       else { //display only the retired tank
         if (0 == i) {
           m_chooseTankImageSprite[i].setFrame(TANK_CHOICE_INDEX_RETIRED);
         }
         else {
           m_chooseTankImageSprite[i].setFrame(i);
         }
       }
       m_layerManager.insert(m_chooseTankImageSprite[i], 0);
     }

     //draw choice icon
     m_chooseTankImageSprite[0].setRefPixelPosition(CHOICE_ONE_X, CHOICE_ONE_Y);
     m_focusedSprite.setRefPixelPosition(CHOICE_ONE_X, CHOICE_ONE_Y);
     m_chooseTankImageSprite[1].setRefPixelPosition(CHOICE_TWO_X, CHOICE_TWO_Y);
     m_chooseTankImageSprite[2].setRefPixelPosition(CHOICE_THREE_X,
         CHOICE_THREE_Y);
     m_chooseTankImageSprite[3].setRefPixelPosition(CHOICE_FOUR_X,
         CHOICE_FOUR_Y);

     m_commanderIconImageSprite.setRefPixelPosition(COMMANDER_ICON_X,
         COMMANDER_ICON_Y);
     m_layerManager.insert(m_commanderIconImageSprite, 0);
   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
 }

 private void displayTankChoice(){

   try {
     if (null == m_focusedSprite) {
       return;
     }

     if(m_currentFocusSprite>=CHOOSE_TANK_SPRITE_COUNTS){
       m_currentFocusSprite=CHOOSE_TANK_SPRITE_COUNTS-1;
     }
     if(m_currentFocusSprite<=0){
       m_currentFocusSprite=0;
     }
     switch(m_currentFocusSprite){
       case 0:
         m_focusedSprite.setRefPixelPosition(CHOICE_ONE_X,CHOICE_ONE_Y);
         m_tankType=GameLogic.TANK_RETIRED;
         break;
       case 1:
         m_focusedSprite.setRefPixelPosition(CHOICE_TWO_X,CHOICE_TWO_Y);
         m_tankType=GameLogic.TANK_FUTURE;
         break;
       case 2:
         m_focusedSprite.setRefPixelPosition(CHOICE_THREE_X,CHOICE_THREE_Y);
         m_tankType=GameLogic.TANK_TIP_LORRY;
         break;
       case 3:
         m_focusedSprite.setRefPixelPosition(CHOICE_FOUR_X,CHOICE_FOUR_Y);
         m_tankType=GameLogic.TANK_BABY;
         break;
      default:
        break;
     }
   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
 }

 private static void releaseTankParam(){
   try {
     m_chooseTankWordImage=null;
   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
 }

 private static void createTankParam(){
   try {
     m_chooseTankWordImage=Image.createImage("/tank/map_res/choosetank_word.png");
   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
 }

 private void displayTankWord() {

   try {
     if(null ==m_chooseTankWordImage){
   return;
 }

     int points = getGamePoints();
     Graphics g = m_graphics;
     //display 退伍坦克 
     //退伍
     DrawTools.XDrawImage(g, m_chooseTankWordImage, WORD_RETIRED_TANK_X,
                          WORD_RETIRED_TANK_Y,
                          80, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH * 2,
                          CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     //坦克
     DrawTools.XDrawImage(g, m_chooseTankWordImage,
                          WORD_RETIRED_TANK_X +
                          2 * CHOOSE_TANK_WORD_IMAGE_WIDTH,
                          WORD_RETIRED_TANK_Y,
                          144, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH * 2,
                          CHOOSE_TANK_WORD_IMAGE_HEIGHT);

//display all the tank params,bullet &blood
     if (points >= POINTS_FUTURE_TANK) {
       m_currentMaxSprite=3;
       //display word,e.g 退伍坦克
       //未来坦克
       DrawTools.XDrawImage(g, m_chooseTankWordImage, WORD_FUTURE_TANK_ONE_X,
                            WORD_FUTURE_TANK_ONE_Y,
                            112, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH * 2,
                            CHOOSE_TANK_WORD_IMAGE_HEIGHT);
       DrawTools.XDrawImage(g, m_chooseTankWordImage,
                            WORD_FUTURE_TANK_ONE_X +
                            2 * CHOOSE_TANK_WORD_IMAGE_WIDTH,
                            WORD_RETIRED_TANK_Y,
                            144, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH * 2,
                            CHOOSE_TANK_WORD_IMAGE_HEIGHT);

       //翻斗车
       DrawTools.XDrawImage(g, m_chooseTankWordImage, WORD_FUTURE_TANK_TWO_X,
                            WORD_FUTURE_TANK_TWO_Y,
                            192, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH * 3,
                            CHOOSE_TANK_WORD_IMAGE_HEIGHT);
       //娃娃车
       DrawTools.XDrawImage(g, m_chooseTankWordImage, WORD_FUTURE_TANK_THREE_X,
                            WORD_FUTURE_TANK_THREE_Y,
                            176, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH,
                            CHOOSE_TANK_WORD_IMAGE_HEIGHT);
       DrawTools.XDrawImage(g, m_chooseTankWordImage,
                            WORD_FUTURE_TANK_THREE_X + CHOOSE_TANK_WORD_IMAGE_WIDTH,
                            WORD_FUTURE_TANK_THREE_Y,
                            176, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH,
                            CHOOSE_TANK_WORD_IMAGE_HEIGHT);
       DrawTools.XDrawImage(g, m_chooseTankWordImage,
                            WORD_FUTURE_TANK_THREE_X +
                            2 * CHOOSE_TANK_WORD_IMAGE_WIDTH,
                            WORD_FUTURE_TANK_THREE_Y,
                            224, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH,
                            CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     }
     else { //only display the bullet/blood param of retired tank,display ?for others
       m_currentMaxSprite=0;
       for (int i = 0; i < QUESTION_MARK_COUNTS; i++) {
         //未来坦克
         DrawTools.XDrawImage(g, m_chooseTankWordImage,
                              WORD_FUTURE_TANK_ONE_X +
                              i * CHOOSE_TANK_WORD_IMAGE_WIDTH,
                              WORD_FUTURE_TANK_ONE_Y,
                              240, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH,
                              CHOOSE_TANK_WORD_IMAGE_HEIGHT);
         //翻斗车
         DrawTools.XDrawImage(g, m_chooseTankWordImage,
                              WORD_FUTURE_TANK_TWO_X +
                              i * CHOOSE_TANK_WORD_IMAGE_WIDTH,
                              WORD_FUTURE_TANK_TWO_Y,
                              240, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH,
                              CHOOSE_TANK_WORD_IMAGE_HEIGHT);
         // //娃娃车
         DrawTools.XDrawImage(g, m_chooseTankWordImage,
                              WORD_FUTURE_TANK_THREE_X +
                              i * CHOOSE_TANK_WORD_IMAGE_WIDTH,
                              WORD_FUTURE_TANK_THREE_Y,
                              240, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH,
                              CHOOSE_TANK_WORD_IMAGE_HEIGHT);
       }

     }
   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
 }

 private void displayTankParam(){

   try {
     if(null ==m_chooseTankWordImage){
    return;
  }


     Graphics g=m_graphics;
//display bullet symbol & : &bullet num
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_ONE_X,BULLET_ONE_Y,
                          0,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_ONE_X+BULLET_COLON_GAP,BULLET_ONE_Y,
                          32,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
	 //retired tank
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_ONE_X+BULLET_LEVEL_GAP,BULLET_ONE_Y,
                          ATTACK_LEVEL_X,ATTACK_LEVEL_Y,BULLET_WIDTH,BULLET_HEIGHT);


     DrawTools.XDrawImage(g, m_chooseTankWordImage, BULLET_TWO_X, BULLET_TWO_Y,
                          0, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH,
                          CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     DrawTools.XDrawImage(g, m_chooseTankWordImage,
                          BULLET_TWO_X + BULLET_COLON_GAP, BULLET_TWO_Y,
                          32, 0, CHOOSE_TANK_WORD_IMAGE_WIDTH,
                          CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     //ATTACK OF future tank one
     for (int i = 0; i < ATTACK_FUTURE_TANK_ONE; i++) {
       DrawTools.XDrawImage(g, m_chooseTankWordImage,
                            BULLET_TWO_X + BULLET_LEVEL_GAP+i*BULLET_GAP, BULLET_TWO_Y,
                            ATTACK_LEVEL_X, ATTACK_LEVEL_Y,
                            BULLET_WIDTH,
                            BULLET_HEIGHT);
     }


     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_THREE_X,BULLET_THREE_Y,
                          0,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_THREE_X+BULLET_COLON_GAP,BULLET_THREE_Y,
                          32,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     //future tank two
     for (int i = 0; i < ATTACK_FUTURE_TANK_TWO; i++) {
       DrawTools.XDrawImage(g, m_chooseTankWordImage,
                            BULLET_THREE_X + BULLET_LEVEL_GAP + i * BULLET_GAP,
                            BULLET_THREE_Y,
                            ATTACK_LEVEL_X, ATTACK_LEVEL_Y,
                            BULLET_WIDTH,
                            BULLET_HEIGHT);
     }

     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_FOUR_X,BULLET_FOUR_Y,
                          0,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_FOUR_X+BULLET_COLON_GAP,BULLET_FOUR_Y,
                          32,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     //future tank three
     for (int i = 0; i < ATTACK_FUTURE_TANK_THREE; i++) {
       DrawTools.XDrawImage(g, m_chooseTankWordImage,
                            BULLET_FOUR_X + BULLET_LEVEL_GAP + i * BULLET_GAP,
                            BULLET_FOUR_Y,
                            ATTACK_LEVEL_X, ATTACK_LEVEL_Y,
                            BULLET_WIDTH,
                            BULLET_HEIGHT);
     }


     //display blood symbol& :
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_ONE_X,BULLET_ONE_Y+BULLET_BLOOD_GAP,
                          16,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_ONE_X+BULLET_COLON_GAP,BULLET_ONE_Y+BULLET_BLOOD_GAP,
                          32,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     //blood of retired tank
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_ONE_X+BULLET_COLON_GAP,BULLET_ONE_Y+BULLET_BLOOD_GAP,
                          BLOOD_LEVEL_X,BLOOD_LEVEL_Y,BULLET_WIDTH,BULLET_HEIGHT);

     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_TWO_X,BULLET_TWO_Y+BULLET_BLOOD_GAP,
                          16,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_TWO_X+BULLET_COLON_GAP,BULLET_TWO_Y+BULLET_BLOOD_GAP,
                          32,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     //BLOOD OF future tank one
     for (int i = 0; i < BLOOD_FUTURE_TANK_ONE; i++) {
       DrawTools.XDrawImage(g, m_chooseTankWordImage,
                            BULLET_TWO_X + BULLET_LEVEL_GAP+i*BULLET_GAP, BULLET_TWO_Y+BULLET_BLOOD_GAP,
                            BLOOD_LEVEL_X, BLOOD_LEVEL_Y,
                            BULLET_WIDTH,
                            BULLET_HEIGHT);
     }

     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_THREE_X,BULLET_THREE_Y+BULLET_BLOOD_GAP,
                          16,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_THREE_X+BULLET_COLON_GAP,BULLET_THREE_Y+BULLET_BLOOD_GAP,
                          32,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     for (int i = 0; i < BLOOD_FUTURE_TANK_TWO; i++) {
      DrawTools.XDrawImage(g, m_chooseTankWordImage,
                           BULLET_THREE_X + BULLET_LEVEL_GAP+i*BULLET_GAP, BULLET_THREE_Y+BULLET_BLOOD_GAP,
                           BLOOD_LEVEL_X, BLOOD_LEVEL_Y,
                           BULLET_WIDTH,
                           BULLET_HEIGHT);
    }

     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_FOUR_X,BULLET_FOUR_Y+BULLET_BLOOD_GAP,
                          16,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     DrawTools.XDrawImage(g,m_chooseTankWordImage,BULLET_FOUR_X+BULLET_COLON_GAP,BULLET_FOUR_Y+BULLET_BLOOD_GAP,
                          32,0,CHOOSE_TANK_WORD_IMAGE_WIDTH,CHOOSE_TANK_WORD_IMAGE_HEIGHT);
     for (int i = 0; i < BLOOD_FUTURE_TANK_THREE; i++) {
      DrawTools.XDrawImage(g, m_chooseTankWordImage,
                           BULLET_FOUR_X + BULLET_LEVEL_GAP+i*BULLET_GAP, BULLET_FOUR_Y+BULLET_BLOOD_GAP,
                           BLOOD_LEVEL_X, BLOOD_LEVEL_Y,
                           BULLET_WIDTH,
                           BULLET_HEIGHT);
    }
   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
 }

 private void createBackground() {
   try {
     m_backgroundImg = Image.createImage("/tank/map_res/tank_factory.png");
     m_panel = Image.createImage("/tank/map_res/bottom.png");

     m_backgroundImgSprite = new Sprite(m_backgroundImg, BACKGROUND_WIDTH,
                                        BACKGROUND_HEIGHT);
     m_backgroundImgSprite.setRefPixelPosition(0, PANEL_HEIGHT);
     m_layerManager.insert(m_backgroundImgSprite, 0);

     m_panelSprite = new Sprite[PANEL_COUNTS];
     for (int i = 0; i < PANEL_COUNTS; i++) {
       m_panelSprite[i] = new Sprite(m_panel, PANEL_WIDTH, PANEL_HEIGHT);
       m_panelSprite[i].setFrame(i);
       m_layerManager.insert(m_panelSprite[i], 0);
     }
     m_panelSprite[0].setRefPixelPosition(0, 0);
     m_panelSprite[1].setRefPixelPosition(0, BACKGROUND_HEIGHT + PANEL_HEIGHT);

   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
 }

  private void createButton() {
   try {
      m_buttonImage = Image.createImage("/tank/map_res/factory_bottom_word.png");
     //button,确定/返回
     m_buttonSprite = new Sprite[BUTTON_SPRITE_COUNTS];
     for (int i = 0; i < BUTTON_SPRITE_COUNTS; i++) {
       m_buttonSprite[i] = new Sprite(m_buttonImage, BUTTON_IMAGE_WIDTH,
                                      BUTTON_IMAGE_HEIGHT);
       m_layerManager.insert(m_buttonSprite[i], 0);
     }
     m_buttonSprite[0].setFrame(BUTTON_INDEX_CONFIRM);
     m_buttonSprite[0].setRefPixelPosition(LEFT_SOFTKEY_X, LEFT_SOFTKEY_Y);

     m_buttonSprite[1].setFrame(BUTTON_INDEX_BACK);
     m_buttonSprite[1].setRefPixelPosition(RIGHT_SOFTKEY_X, RIGHT_SOFTKEY_Y);

   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
 }

 public void createTitle(int titleIndex) {
   try {
     m_titleImage = Image.createImage("/tank/map_res/factory_icon_word.png");
     m_factoryIconImage=Image.createImage("/tank/map_res/factory_icon.png");

     //工厂ICON
     m_factoryIconImageSprite = new Sprite(m_factoryIconImage,
                                               TITLE_ICON_IMAGE_WIDTH,
                                               TITLE_ICON_IMAGE_HEIGHT);
     m_factoryIconImageSprite.setRefPixelPosition(TITLE_ICON_X,
         TITLE_ICON_Y);
     m_layerManager.insert(m_factoryIconImageSprite, 0);

     m_titleImageSprite = new Sprite(m_titleImage, TITLE_IMAGE_WIDTH,
                                     TITLE_IMAGE_HEIGHT);
     m_titleImageSprite.setFrame(titleIndex);
     m_titleImageSprite.setRefPixelPosition(TITLE_X, TITLE_Y);
     m_layerManager.insert(m_titleImageSprite, 0);
   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
 }

 protected void keyPressed(int keyCode){
   //System.out.println(keyCode);
   String cmd = null;
   if (KEY_CODE_LSK == keyCode || DrawTools.KEY_CODE_SELECT == keyCode) {
     cmd = "进入战斗";
     stop();
     //update tank type
     GameLogic.updateGameInfo(-1,-1,-1,m_tan

⌨️ 快捷键说明

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