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

📄 level.java

📁 Critter_Crunch_J2ME 游戏源
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            chances_size = LEVELS[i];

            while(index_1 < index_2 + chances_size) {
               s_chance_creatures[index_1] = (byte)(i - start);
               index_1++;
            }

            index_2 = index_1;
         }

         chances_size = 0;
         start = end;
         end += Critter.ALL_ITEMS;

         for(int i = start; i < end; i++) {
            chances_size += LEVELS[i];
         }

         s_chance_items = new byte [chances_size];
         index_1 = 0;
         index_2 = 0;

         for(int i = start; i < end; i++) {
            chances_size = LEVELS[i];

            while(index_1 < index_2 + chances_size) {
               s_chance_items[index_1] = (byte)(i - start);
               index_1++;
            }

            index_2 = index_1;
         }

         //Engine.printArray(s_chance_creatures);
         //Engine.printArray(s_chance_items);
      }
      else if(s_type == TYPE_SURVIVAL) {
         byte [] tmp_critters_1 = new byte[SURVIVAL_BASICS];
         byte [] tmp_critters_2 = new byte[SURVIVAL_REST];
         byte [] tmp_items      = new byte[SURVIVAL_ITEMS];
         int critter_counter = 0, items_counter = 0;
         for(critter_counter = critter_counter; critter_counter < SURVIVAL_GREENS; critter_counter++) tmp_critters_1[critter_counter] = Critter.CREATURE_GREEN;
         for(critter_counter = critter_counter; critter_counter < SURVIVAL_REDS; critter_counter++)   tmp_critters_1[critter_counter] = Critter.CREATURE_RED;
         for(critter_counter = critter_counter; critter_counter < SURVIVAL_BLUES; critter_counter++)  tmp_critters_1[critter_counter] = Critter.CREATURE_BLUE;
         critter_counter = 0;

         if(s_number > SURVIVAL_INTERVAL_1) {
            tmp_critters_2[critter_counter++] = Critter.CREATURE_TNT;
            tmp_critters_2[critter_counter++] = Critter.CREATURE_TOXIC;
         }
         if(s_number > SURVIVAL_INTERVAL_2) {
            tmp_items[items_counter++] = Critter.ITEM_WATERMELON;
            s_board_timer_bonus_original = s_board_timer_bonus = SURVIVAL_BONUS_1;
            tmp_critters_2[critter_counter++] = Critter.CREATURE_BLOCKER;
         }
         if(s_number > SURVIVAL_INTERVAL_3) {
            tmp_items[items_counter++] = Critter.ITEM_ONION;
            s_board_timer_bonus_original = SURVIVAL_BONUS_2;
            s_oranges = SURVIVAL_ORANGES;
         }
         if(s_number > SURVIVAL_INTERVAL_4) {
            tmp_items[items_counter++] = Critter.ITEM_PEPPER;
            s_board_timer_bonus_original = SURVIVAL_BONUS_3;
            s_purples = SURVIVAL_PURPLES;
         }
         if(s_number > SURVIVAL_INTERVAL_5) {
            tmp_critters_2[critter_counter++] = Critter.CREATURE_WILDCARD;
         }

         s_chance_creatures = new byte[SURVIVAL_BASICS + critter_counter];
         s_chance_items     = new byte[items_counter];
         System.arraycopy(tmp_critters_1, 0, s_chance_creatures, 0, tmp_critters_1.length);
         System.arraycopy(tmp_critters_2, 0, s_chance_creatures, SURVIVAL_BASICS, critter_counter);
         System.arraycopy(tmp_items, 0, s_chance_items, 0, items_counter);

         Engine.printArray(s_chance_creatures);
         Engine.printArray(s_chance_items);
      }
      else {
         s_chance_creatures = null;
         s_chance_items = null;
      }
   }

   // create the game board.
   public static void initBoard() {

      /*
         s_board = new Critter[MENU_BOARD_H][MENU_BOARD_W];
         SQUARE_W = MENU_SQUARE_W;
         SQUARE_H = MENU_SQUARE_H;
         s_board_x = MENU_BOARD_ANCHOR;
      */

      s_board = new Critter[GAME_BOARD_H][GAME_BOARD_W];
      SQUARE_W = GAME_SQUARE_W;
      SQUARE_H = GAME_SQUARE_H;
      s_board_x = GAME_BOARD_ANCHOR;

      SQUARE_HALF_W = (short)(SQUARE_W >> 1);
      SQUARE_HALF_H = (short)(SQUARE_H >> 1);

      if(s_type == TYPE_ADVENTURE || s_type == TYPE_SURVIVAL) s_board_y = (short)-SQUARE_H; // + BOARD_TOP_PADDING;
      else if(s_type == TYPE_MAINMENU)                        s_board_y = 0; //s_board_y = MAIN_MENU_OFFSET;
      else                                                    s_board_y = 0;

      s_board_state &= ~(BOARD_ALL_STATES);
      seedBoard();
   }

   // init the extras array.
   public static void initExtras() {

      s_extras = new Critter[MAX_EXTRAS];
      for(int i = MAX_EXTRAS - 1; i >= 0; i--) {
         s_extras[i] = null;
      }
   }

   // initialize and load -- if necessary -- the appropriate background.
   public static void initBackground() {

      //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
      int bg = (s_type != TYPE_ADVENTURE ? s_type - BG_TYPE_OFFSET : s_type + s_number / BG_ADVENTURE_DIVISOR - BG_TYPE_OFFSET);
      if (s_type == TYPE_TUTORIAL) bg = s_type - BG_TYPE_OFFSET;
      int index = s_background + BG_TYPE_OFFSET;

      if(bg != s_original_background) {
         if(index >= 0 && index < Engine.S_IMAGES.length) Engine.S_IMAGES[index] = null;

         if(Engine.S_IMAGES[Engine.IMAGE_SPLASHES] != null) {
            Engine.S_IMAGES[Engine.IMAGE_SPLASHES] = null;
            Engine.gc();
         }

         Engine.S_IMAGES[bg + BG_TYPE_OFFSET] = Engine.loadImage(bg + BG_TYPE_OFFSET);
         Engine.gc();
      }

      s_original_background = s_background = (byte)bg;
      //#else
//#       s_original_background = s_background = (byte)(s_type - BG_TYPE_OFFSET);
//#       if(s_type == TYPE_MAINMENU) {
//#          Engine.S_IMAGES[Engine.IMAGE_BG_ADVENTURE_1] = null;
//#          if(Engine.S_IMAGES[Engine.IMAGE_BG_TITLE] == null) {
//#             Engine.gc();
//#             Engine.S_IMAGES[Engine.IMAGE_BG_TITLE] = Engine.loadImage(Engine.IMAGE_BG_TITLE);
//#          }
//#       }
//#       else {
//#          Engine.S_IMAGES[Engine.IMAGE_BG_TITLE] = null;
//#          if(Engine.S_IMAGES[Engine.IMAGE_BG_ADVENTURE_1] == null) {
//#             Engine.gc();
//#             Engine.S_IMAGES[Engine.IMAGE_BG_ADVENTURE_1] = Engine.loadImage(Engine.IMAGE_BG_ADVENTURE_1);
//#          }
//#       }
      //#endif
   }



   /****************************************************************************
    ** Miscellaneous Methods
    ***************************************************************************/

   // process the level's functionality.
   public static void process() {

      if(s_paused) return;

      s_clock++;

      // process particles
      Particles.process();



      switch(s_type) {
         //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
         case TYPE_MAINMENU:
            if(Engine.getRandom(20)==0) Particles.create(Particles.TYPE_FALLING_LEAF, Particles.LAYER_FOREGROUND, (Engine.getRandom(Engine.SCREEN_WIDTH))<<Engine.FP_SHIFT, (Engine.getRandom(Engine.SCREEN_HALF_HEIGHT>>1))<<Engine.FP_SHIFT);
            break;
         //#endif

         case TYPE_ADVENTURE:
            switch(s_state) {

               case STATE_INTRO:
                  s_state = STATE_BIGGS_FALL;
                  break;

               case STATE_BIGGS_FALL:

⌨️ 快捷键说明

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