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

📄 avatar.java

📁 Critter_Crunch_J2ME 游戏源
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
//#                Engine.printLine("playing gem grab 2");
//#                Engine.playSound(Engine.SOUND_GRAB_GEM);
//#             }
//#             else {
//#                Engine.playSound(Engine.SOUND_GRAB_POWERUP);
//#             }
//#          }
         //#endif

         //#ifndef NO_BOARD_BUMPS
         if(c.m_board_y != Engine.FULL_BYTE) Level.s_board_bumps[Level.BUMP_DIRECTION][c.m_board_x] = Engine.DOWN;
         //#endif

         if(c.m_board_x >= 0 && c.m_board_x < Level.s_board[0].length && c.m_board_y >= 0 && c.m_board_y < Level.s_board.length) Level.s_board[c.m_board_y][c.m_board_x] = null;
         Level.removeExtra(c);
         c.m_state &= ~(STATE_ASCENDING | STATE_DESCENDING | STATE_WESTWARD | STATE_EASTWARD | STATE_FLASHING);
         c.m_state |= (Critter.STATE_TONGUED | STATE_IMMOBILE);
         c.m_next_y = c.m_destination_y = c.m_y;
         c.m_frame = 0;
         c.m_speed = 0;
         c.m_timer = 0;
         m_in_mouth = c;
      }
      //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
      else {
         c.blockerPuff();
      }
      //#endif
   }

   // make Biggs eat something.
   public void swallow() {
      
      if( ((m_state & STATE_TONGUE_FLICK) != 0) || ((m_state & STATE_SPIT) != 0) ) return;
      
      m_timer = 0;
      m_state |= (STATE_TONGUE_FLICK | STATE_IMMOBILE);
      setAnim(Anims.BIGGS_EATING);
      m_destination_tongue = (short)(m_y + TONGUE_Y - BIGGS_TONGUE_Y);
   }
   
   // make Biggs spit something out.
   public void spit(Critter c) {
      
      if(c == null || ((m_state & STATE_TONGUE_FLICK) != 0) || ((m_state & STATE_SPIT) != 0) ) return;

      Critter tmp = Level.getLowest(m_board_x);
      c.m_board_x = m_board_x;
      c.m_board_y = 0;
      c.m_speed = (byte)SPEED_TONGUE;
      c.m_destination_x = c.m_next_x = c.m_x = (short)(Level.s_board_x + m_board_x * Level.SQUARE_W + Level.SQUARE_HALF_W);
      
      if(tmp != null) {
         //Engine.printLine("tmpboardy " + tmp.m_board_y + ", board length: " + Level.s_board.length);
         if(c.m_type == Critter.TYPE_CREATURE &&
            tmp.m_board_y == Level.s_board.length - (Level.s_type == Level.TYPE_ADVENTURE || Level.s_type == Level.TYPE_SURVIVAL ? 2 : 3) &&
            tmp.m_id != Critter.CREATURE_TNT && 
            ( c.m_size == Critter.SIZE_INEDIBLE || (c.m_size & Critter.SIZE_BIG) == Critter.SIZE_BIG || (((c.m_size & Critter.SIZE_SMALL) == Critter.SIZE_SMALL) && ((tmp.m_size & Critter.SIZE_MEDIUM) != Critter.SIZE_MEDIUM)) || (((c.m_size & Critter.SIZE_MEDIUM) == Critter.SIZE_MEDIUM) && ((tmp.m_size & Critter.SIZE_BIG) != Critter.SIZE_BIG)) ) ) {
            return;
         }
         else {
            c.m_destination_y = tmp.m_y;
         }
         //Engine.printLine("1 " + (tmp.m_board_y == Level.s_board.length - (Level.s_type == Level.TYPE_ADVENTURE || Level.s_type == Level.TYPE_SURVIVAL ? 2 : 1)) );
         //Engine.printLine("2 " + (tmp.m_id != Critter.CREATURE_TNT));
         //Engine.printLine("3 " + ( c.m_size == Critter.SIZE_INEDIBLE || (c.m_size & Critter.SIZE_BIG) == Critter.SIZE_BIG || (((c.m_size & Critter.SIZE_SMALL) == Critter.SIZE_SMALL) && ((tmp.m_size & Critter.SIZE_MEDIUM) != Critter.SIZE_MEDIUM)) || (((c.m_size & Critter.SIZE_MEDIUM) == Critter.SIZE_MEDIUM) && ((tmp.m_size & Critter.SIZE_BIG) != Critter.SIZE_BIG)) ));
      }
      else {
         if(Level.s_board_y < 0) {
            tmp = new Critter(c.m_type, 
                                 c.m_id, 
                                 Entity.STATE_DEFAULT, 
                                 Anims.GREEN_IDLE, 
                                 c.m_x, 
                                 Level.s_board_y + Level.SQUARE_HALF_H + Level.s_board_offset_total,
                                 c.m_x,
                                 Level.s_board_y + Level.SQUARE_HALF_H + Level.s_board_offset_total,
                                 0,
                                 0,
                                 0);
            //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
            if(Level.s_board_offset_total != 0) tmp.setAnim(Anims.GREEN_CLIMB);
            //#endif
            Level.mapToBoard(tmp);
            Level.s_board[tmp.m_board_y][tmp.m_board_x] = tmp;
            c.m_destination_y = (short)(Level.SQUARE_HALF_H);
         }
         else {
            c.m_destination_y = (short)(Level.SQUARE_HALF_H); //(short)(Level.s_board_y + Level.SQUARE_HALF_H);
         }
      } 

      if(c == m_in_mouth) {
         //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
         c.setAnim(Anims.GREEN_SCARED);
         //#else
//#          Engine.playSound(Engine.SOUND_SPIT);
         //#endif
         m_in_mouth = null;
      }
      else {
         c.setAnim(Anims.MELON_IDLE);
         c.m_y = m_y;
         //#if Nokia_3100 || Nokia_3100_Unobfuscated
//#          Engine.playSound(Engine.SOUND_USE_POWERUP);
         //#endif
      }
      
      c.m_state |= (STATE_ASCENDING | Critter.STATE_SPAT);
      c.m_next_y = c.m_y;
      Level.addExtra(c);

      m_timer = (short)TIME_SPIT;
      m_state |= STATE_SPIT;
      setAnim(Anims.BIGGS_EATING);
   }
   
   // make Biggs use the onion breath power!!!
   public void onionBreath() {

      m_state |= (STATE_IMMOBILE | STATE_ONION_BREATH);
      //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
      setAnim(Anims.BIGGS_JUMP);
      //#else
//#       setAnim(Anims.BIGGS_EATING);
      //#endif

      //#ifndef NO_SCREEN_SHAKING
      Engine.setShake(Engine.SHAKE_BIGGS, Engine.X_AXIS, 3, 0, true);
      Engine.clearShakes(Engine.SHAKE_CRITTERS);
      //#endif
      
      if((Level.s_board_state & Level.BOARD_DESCEND) == 0) {
         Level.s_board_state |= (Level.BOARD_ONION | Level.BOARD_SCARE);
         Level.s_board_timer_delay = 0;
      }
      
      Particles.create(Particles.TYPE_ONION_BREATH, Particles.LAYER_FOREGROUND, (m_x<<Engine.FP_SHIFT), (m_y<<Engine.FP_SHIFT));
   }
   
   // make Biggs move either left or right.
   public void move(boolean left) {

      m_leftside = left;
      m_timer = 0;
      
      //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
      if( (left && m_anim_state != Anims.BIGGS_HOP_LEFT) || (!left && m_anim_state != Anims.BIGGS_HOP_RIGHT) ) {
         setAnim(Anims.BIGGS_HOP_LEFT);
      }

      m_speed = (byte)SPEED_SIDEWAYS;
      m_state |= ( (m_leftside ? STATE_WESTWARD : STATE_EASTWARD) | STATE_IMMOBILE);
      
      if(m_leftside && m_x <= m_destination_x) {
         m_destination_x -= Level.SQUARE_W;
         if(m_destination_x < Level.s_board_x + Level.SQUARE_HALF_W) { 
            m_destination_x = (short)(Level.s_board_x + Level.SQUARE_HALF_W);
         }
      }
      else if(!m_leftside && m_x >= m_destination_x) {
         m_destination_x += Level.SQUARE_W;
         if(m_destination_x > Level.s_board_x + Level.GAME_BOARD_W * Level.SQUARE_W - Level.SQUARE_HALF_W) {
            m_destination_x = (short)(Level.s_board_x + Level.GAME_BOARD_W * Level.SQUARE_W - Level.SQUARE_HALF_W);
         }
      }
      //#else
//#       if(m_anim_state != Anims.BIGGS_HOP_LEFT) setAnim(Anims.BIGGS_HOP_LEFT);
//#       
//#       m_speed = (byte)Level.SQUARE_W;
//#       m_state |= ( (m_leftside ? STATE_WESTWARD : STATE_EASTWARD) );
//#       m_board_x += (m_leftside ? -1 : 1);
//#       m_destination_x += m_leftside ? -Level.SQUARE_W : Level.SQUARE_W;
      //#endif
   }

   //#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
   // get the current board x that Biggs is residing on.
   public byte getBoardLocation() {
      
      int tmp_x = Level.s_board_x + Level.SQUARE_W, tmp_board = 0;
      
      while(tmp_x <= m_x) {
         tmp_x += Level.SQUARE_W;
         tmp_board++;
      }
         
      return (byte)tmp_board;
   }
   //#endif
   
   
   
   /****************************************************************************
    ** Debugging
    ***************************************************************************/
   
   // return the string representation of the Player's id/name.
   public String idString() {
      
      //#ifdef DEBUG_PRINTOUTS
      return "BIGGS, ";
      //#else
//#       return Engine.NO_DBG_STRING;
      //#endif
   }
   
   // return the string representation of the Player's logical state(s).
   public String stateString() {
      
      //#ifdef DEBUG_PRINTOUTS
      String s = super.stateString();

      if((m_state & STATE_TONGUE_FLICK) != 0) s += "TONGUE FLICK | ";
      if((m_state & STATE_TONGUE_DRAG) != 0)  s += "TONGUE DRAG | ";
      if((m_state & STATE_SPIT) != 0)         s += "SPIT | ";
      if((m_state & STATE_CHOMP) != 0)        s += "CHOMPING | ";
      if((m_state & STATE_SCARED) != 0)       s += "SCARED | ";
      if((m_state & STATE_HOLD_DOWN) != 0)    s += "HOLDING DOWN | ";
      if((m_state & STATE_DROP_BOARD) != 0)   s += "DROPPING BOARD | ";
      
      return s.substring(0, s.length() - 3) + ", ";
      //#else
//#       return Engine.NO_DBG_STRING;
      //#endif
   }
   
   // return the string representation of the Player's animation state.
   public String animStateString() {
      
      //#ifdef DEBUG_PRINTOUTS
      return "" + m_anim_state;
      //#else
//#       return Engine.NO_DBG_STRING;
      //#endif
   }
   
   // return the string representation of the Player.
   public String toString() {
      
      String s = super.toString();
      s += ", tongue: " + m_tongue;
      s += ", dest-tongue: " + m_destination_tongue;
      if(m_in_mouth != null) s += ", In-Mouth: " + m_in_mouth.toString();
      return s;
   }
}

⌨️ 快捷键说明

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