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

📄 menus.java

📁 Critter_Crunch_J2ME 游戏源
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
      //if (Engine.s_current_action==Engine.INPUT_ACTION || 
      //    Engine.s_current_action==Engine.INPUT_LEFT_SOFT_KEY ||
      //    Engine.s_current_action==Engine.INPUT_RIGHT_SOFT_KEY) {
         Engine.s_current_action = Engine.INPUT_NONE;
      //}
   }
   
   
   
   
   public static void process() {
      int current_menu_item_id = getMenuItem(m_current_menu, m_current_menu_item);
      
      //System.out.println("current_menu_item="+current_menu_item_id+" state="+m_menu_item_state[current_menu_item_id]);
      //System.out.println("current_list_length="+getListLength(m_current_menu));
      
      //updateMenus();
      
      // menu logical state machine
      switch(m_menu_state) {
         
         case MENU_STATE_NORMAL:
            
            // deactivate menu and start outro transition animation
            if (m_current_menu != m_next_menu) {
               m_menu_state = MENU_STATE_INACTIVE;
               m_menu_anim_state = MENU_ANIM_STATE_OUTRO;
               m_menu_timer = 0;
            }
            
            // proceed to next menu item if we're not changing menus
            if (m_menu_state == MENU_STATE_NORMAL && m_current_menu_item != m_next_menu_item) {
               m_current_menu_item = m_next_menu_item;
               m_current_menu_top = m_next_menu_top;
               m_menu_item_timer = 0;
            }
            
            break;
      
      }
      
      // menu animation state machine
      switch(m_menu_anim_state) {
         
         case MENU_ANIM_STATE_OUTRO:
            
            // introduce next menu after the outro transition animation is complete
            if (m_menu_timer >= MENU_OUTRO_TIME) {
               m_menu_timer = 0;
               
               if (m_next_menu == CLOSE) {      // if we had a special CLOSE pointer, execute the event now!
                  // special case if we are trying to go back to the game
                  if (mb_go_back && m_current_stack_height==0) {
                     Engine.s_engine.m_state = m_prev_engine_state;
                     Engine.s_current_action = Engine.INPUT_NONE;
                     //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
                     Engine.playSound(Engine.s_current_sound);
                     //#endif
                     break;
                  }
                  processEvent(current_menu_item_id);
                  break;
               }
               else if (m_next_menu != CLOSE && !mb_go_back) {
                  processEvent(current_menu_item_id); // else just execute the event and carry on
               }
               
               m_current_menu = m_next_menu;
               m_current_menu_item = m_next_menu_item;
               m_current_menu_top = m_next_menu_top;
               m_menu_item_timer = 0;
               m_menu_anim_state = MENU_ANIM_STATE_INTRO;
               
               
            }
            break;
         case MENU_ANIM_STATE_INTRO:
            
            // activate the menu after the intro transition animation is complete
            if (m_menu_timer >= MENU_INTRO_TIME) {
               m_menu_timer = 0;
               m_menu_anim_state = MENU_ANIM_STATE_NORMAL;
               m_menu_state = MENU_STATE_NORMAL;
            }
            break;
      }
      
      
      
      m_menu_timer++;
      m_menu_item_timer++;
      
      updateMenus();
   }
   
   
   /* event code for all menu items */
   public static void processEvent(int event) {
      
      int tutorial_number;
      
      // for confirmation items, don't execute the event until you press ok in the confirmation menu
      if (m_menu_item_type[event] == MENU_ITEM_TYPE_CONFIRM && m_current_menu != MENU_SPECIAL_CONFIRMATION) return;
      //if (m_menu_item_type[event] == MENU_ITEM_TYPE_CONFIRM) return;
      //if (m_current_menu == MENU_SPECIAL_CONFIRMATION && event == MENU_ITEM_SPECIAL_OK)
      //   event = m_confirm_event;

      switch (event) {
         case MENU_ITEM_SOUND_ON:
            Engine.s_audio_on = true;
            //Engine.playSound(Engine.SONG_TITLE);
            Engine.gotoTitle();
            break;
            
         case MENU_ITEM_SOUND_OFF:
            Engine.s_audio_on = false;
            Engine.stopSound();
            Engine.gotoTitle();
            break;
            
         case MENU_ITEM_BACK_TO_TITLE:
            Engine.gotoTitle();
            break;
            
         case MENU_ITEM_SOUND_TOGGLE:
            Engine.s_audio_on = !Engine.s_audio_on;
            if (Engine.s_audio_on) {
               //restart the sound
               //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
               if(Level.s_type == Level.TYPE_MAINMENU) Engine.playSound(Engine.s_current_sound);
               //#else
//#                if(Level.s_type == Level.TYPE_MAINMENU) Engine.playSound(Engine.SONG_TITLE);
               //#endif
            } else {
               //pause the sound
               Engine.pauseSound();
            }
            break;
            
         case MENU_ITEM_TUTORIAL_TOGGLE:
            Engine.s_use_tutorials = !Engine.s_use_tutorials;
            Engine.saveGameToRecordStore();
            break;
            
         case MENU_ITEM_ADVENTURE_MODE:
            if (Level.s_adventure_number > 0 || (Level.s_extra_type != Level.TYPE_ADVENTURE && Level.s_extra_type != Engine.FULL_BYTE)) {
               push();
               setMenu(MENU_ADVENTURE_CONT);
               break;
            }
         case MENU_ITEM_ADVENTURE_NEW:
            Level.s_adventure_number = 0;
            Level.s_adventure_score = 0;
            //if (Engine.mb_use_tutorials) Level.init(Level.TYPE_TUTORIAL, 0, 0);
            
            Level.s_main_type = Level.TYPE_ADVENTURE;
            
            Level.init(Level.TYPE_TUTORIAL, 0, 0);
            Engine.s_engine.m_state = Engine.STATE_GAME;
            break;
         case MENU_ITEM_ADVENTURE_CONT:
            Level.s_main_type = Level.TYPE_ADVENTURE;
            if(Level.s_extra_type == Engine.FULL_INT) Level.s_extra_type = Level.TYPE_ADVENTURE;
            Level.init(Level.s_extra_type, Level.s_adventure_number, Level.s_adventure_score);
            Engine.s_engine.m_state = Engine.STATE_GAME;
            break;
         
         case MENU_ITEM_PUZZLE_MODE:
         case MENU_ITEM_LEVEL_SELECT:
            startLevelSelect(Level.TYPE_PUZZLE);
            break;
//            if (Level.s_puzzle_number>0) break;      // if no saved game, just start a new game
//         case MENU_ITEM_PUZZLE_NEW:
//            Level.s_puzzle_number = 0;
//         case MENU_ITEM_PUZZLE_CONT:
//            Level.s_main_type = Engine.FULL_BYTE;
//            Level.init(Level.TYPE_PUZZLE, Level.s_puzzle_number, 0);
//            Engine.s_engine.m_state = Engine.STATE_GAME;
//            break;
            
         case MENU_ITEM_TIME_MODE:
            if (Level.s_timetrial_number>0) break;      // if no saved game, just start a new game
         case MENU_ITEM_TIMETRIAL_NEW:
            Level.s_timetrial_number = 0;
            Level.s_timetrial_score = 0;
         case MENU_ITEM_TIMETRIAL_CONT:
            Level.s_main_type = Engine.FULL_BYTE;
            Level.init(Level.TYPE_TIMETRIAL, Level.s_timetrial_number, Level.s_timetrial_score);
            Engine.s_engine.m_state = Engine.STATE_GAME;
            break;
            
         case MENU_ITEM_SURVIVAL_MODE:
            Level.s_main_type = Engine.FULL_BYTE;
            Level.init(Level.TYPE_SURVIVAL, 0, 0);
            Engine.s_engine.m_state = Engine.STATE_GAME;
            break;
            
         case MENU_ITEM_ERASE_DATA:
            Engine.deleteRecordStore();
            mb_go_back = true;
            pop();
            break;
            
         case MENU_ITEM_SPECIAL_OK:
            
            processEvent(MENU_ITEM_RESUME);
            break;
            
         case MENU_ITEM_RESUME:
            if (m_current_stack_height>0) pop();
            else {
               Engine.s_engine.m_state = m_prev_engine_state;
               //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
               // make sure sound is restarted when exiting out from ingame menu
               if (m_current_menu == MENU_INGAME) Engine.playSound(Engine.s_current_sound);
               //#endif
            }
            Engine.s_current_action = Engine.INPUT_NONE;
            break;
            
         case MENU_ITEM_RESTART_YES:
         case MENU_ITEM_RESTART_LEVEL:
            Level.init(Level.s_type, Level.s_number, Level.s_last_score);
            Engine.s_engine.m_state = Engine.STATE_GAME;
            if (Engine.mb_script_active) {
               Engine.mb_script_show_text = true;
               Engine.m_script_position = 0;
            }
            break;
            
         case MENU_ITEM_RESTART_NO:
            Engine.gotoTitle();
            break;
            
         case MENU_ITEM_SKIP_LEVEL:
         case MENU_ITEM_SKIP_LEVEL_CONFIRM:
            if(Level.s_main_type == Level.TYPE_ADVENTURE) Level.init(Level.s_next_type, Level.s_next_number, Level.s_current_score);
            else                                          Level.init(Level.s_type, ++Level.s_number, Level.s_current_score);  
            Engine.s_engine.m_state = Engine.STATE_GAME;
            break;
            
         case MENU_ITEM_INSTRUCTIONS:
            startTextBox(Locale.INSTRUCTION_TEXT, TEXT_TYPE_FULLSCREEN, Graphics.LEFT);
            break;
            
         case MENU_ITEM_ABOUT:
            startTextBox(Locale.ABOUT_TEXT, TEXT_TYPE_FULLSCREEN);
            break;
            
            
         case MENU_ITEM_TUTORIAL_0:
         case MENU_ITEM_TUTORIAL_1:
         case MENU_ITEM_TUTORIAL_2:
         case MENU_ITEM_TUTORIAL_3:
         case MENU_ITEM_TUTORIAL_4:
         case MENU_ITEM_TUTORIAL_5:
         case MENU_ITEM_TUTORIAL_6:
         case MENU_ITEM_TUTORIAL_7:
         case MENU_ITEM_TUTORIAL_8:
         case MENU_ITEM_TUTORIAL_9:
         case MENU_ITEM_TUTORIAL_10:
         case MENU_ITEM_TUTORIAL_11:
         case MENU_ITEM_TUTORIAL_12:
         case MENU_ITEM_TUTORIAL_13:
            tutorial_number = event-MENU_ITEM_TUTORIAL_0;
            Level.s_main_type = Engine.FULL_BYTE;
            Engine.mb_script_active = false;
            Level.init(Level.TYPE_TUTORIAL, tutorial_number, 0);
            Engine.s_engine.m_state = Engine.STATE_GAME;
            break;
            
         case MENU_ITEM_LEVEL_0:
         case MENU_ITEM_LEVEL_1:
         case MENU_ITEM_LEVEL_2:
         case MENU_ITEM_LEVEL_3:
         case MENU_ITEM_LEVEL_4:
         case MENU_ITEM_LEVEL_5:
         case MENU_ITEM_LEVEL_6:
         case MENU_ITEM_LEVEL_7:
         case MENU_ITEM_LEVEL_8:
         case MENU_ITEM_LEVEL_9:
            Level.s_puzzle_number = (byte)(m_level_list_start + event - MENU_ITEM_LEVEL_0);
            Level.s_main_type = Engine.FULL_BYTE;
            Level.init(Level.TYPE_PUZZLE, Level.s_puzzle_num

⌨️ 快捷键说明

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