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

📄 jiaose.java

📁 HappyTreeFriends手机游戏的源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:

    static boolean IsDie(int ajiaoseID)
    {
        return ((s_originData[s_ajiaosepanYi[ajiaoseID] + 6] & DWorld.ACTOR_FLAG_DIE) != 0);
    }



   
    static boolean InActiveZone(int flag, int offset)
    {

       if(Xiyou.s_gameStatus == DGameStatus.GS_MAIN_MENU)
	   	return true;
       //
       if(Xiyou.s_gameStatus == DGameStatus.GS_ACTION || 
	   	Xiyou.s_gameStatus == DGameStatus.GS_PLAY_AGAIN ||
	   	  Xiyou.s_gameStatus == DGameStatus.GS_ENTER_NAME || 
	   	     Xiyou.s_gameStatus == DGameStatus.GS_HIGHSCORE_INGAME)
       	{
       		if(s_isActiveGameScene)
				{
					if((flag & DWorld.ACTOR_FLAG_GAMESCENE) == 0)
						return false;
				}
			else
				{
					if((flag & DWorld.ACTOR_FLAG_GAMESCENE) != 0)
						return false;
				}
       	}
	
        if ((flag & DWorld.ACTOR_FLAG_DIE) != 0 /* ||(flag & DWorld.ACTOR_FLAG_MANUAL_ACTIVED) == 0*/)
        {
            return false;
        }

        if ( (flag & DWorld.ACTOR_FLAG_IGNORE_ACTIVE_ZONE) != 0)
        {
            return true;
        }
		


        int left = s_activeZones[offset++];
        int top = s_activeZones[offset++];
        if (Xiyou.s_jingtouX + PINGMUDDD.sssCHUANNN_WIDTH < left
            || Xiyou.s_jingtouY + PINGMUDDD.sssCHUANNN_HEIGHT < top)
        {
            return false;
        }

        int right = s_activeZones[offset++];
        int bottom = s_activeZones[offset++];
        if (Xiyou.s_jingtouX > right
            || Xiyou.s_jingtouY  > bottom)
        {
            return false;
        }
        return true;
    }

  
    void CleanFangjian()
    {
        m_flag = 0;

        for (int i = 0; i < ALLOCATE_ACTOR_MAX_PARA_NUM; i++)
            m_parameters[i] = -1;

        
       
        m_roomID = -1;

    }

    void SetAliveFlag(boolean isAlive)
    {
        
        if (isAlive)
        {
            if ((m_flag & DWorld.ACTOR_FLAG_DIE) != 0) m_flag -= DWorld.ACTOR_FLAG_DIE;
        }
        else
        {
            if ((m_flag & DWorld.ACTOR_FLAG_DIE) == 0) m_flag += DWorld.ACTOR_FLAG_DIE;
        }
    }


    
    void Die(boolean isTrue)
    {
        SetAliveFlag(false);
        DisallocJiaoses(this, isTrue);
    }

  
    void Parameters2Varible()
    {
       
    }

 
    public int m_diTUX;

    public int m_diTUY;

 
    public void Draw(Graphics g, int jingtouX, int jingtouY)
    {
       
        int scenePalID = 0;
        m_anim.Draw(g, (m_x >> 8) - jingtouX + PINGMUDDD.sssCHUANNN_LEFT, (m_y >> 8) - jingtouY + PINGMUDDD.sssCHUANNN_TOP,
                    m_flipX, m_flipY, m_frameID, scenePalID, true);
                    
        
    }

  
    public void Draw(Graphics g, int x, int y, boolean flipX, boolean flipY, int frameID, int scenePalID)
    {
        m_anim.Draw(g, x, y, flipX, flipY, frameID, scenePalID, false);
    }

    static final int DYNAMIC_ACTOR_DRAW_OFF_Y = 0;

    public static final int CAMERA_LIMIT_ADD = 20;	

  
    public boolean IsOutOfCamera()
    	{

           if(m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_CROCODILEBITED)return false;
		
    		GetJiaosesHezzzzzzInfo( BOX_TYPE_COLLISION, s_hezzz1 );
		return (s_hezzz1[INDEX_BOX_LEFT] > Xiyou.s_jingtouX + PINGMUDDD.sssCHUANNN_WIDTH + CAMERA_LIMIT_ADD ||
			s_hezzz1[INDEX_BOX_RIGHT] < Xiyou.s_jingtouX - CAMERA_LIMIT_ADD ||
			s_hezzz1[INDEX_BOX_TOP] > Xiyou.s_jingtouY + PINGMUDDD.sssCHUANNN_HEIGHT + CAMERA_LIMIT_ADD ||
			s_hezzz1[INDEX_BOX_BOTTOM] < Xiyou.s_jingtouY - CAMERA_LIMIT_ADD) ;
    	}



    public static void DrawJiaosess(Graphics g, int jingtouX, int jingtouY)
    {


		
        if (s_freeFangjianID < 0)
            s_freeFangjianID = 0;


	if(Xiyou.s_gameStatus == DGameStatus.GS_PLAY_AGAIN)return;	

     
	              if(Jiaose.s_isClosed && Xiyou.s_gameStatus == DGameStatus.GS_ACTION)
                    {
                        DrawBlood(g , jingtouX, jingtouY);
                    }		

        Jiaose a;
        int insertPos;

        s_inCameraJiaosesCount = 0;
        for (int i = 0; i < s_freeFangjianID; i++)
        {
            a = s_ajiaoses[i];
		if(Xiyou.s_gameStatus == DGameStatus.GS_ACTION && a.IsOutOfCamera())continue;	

		
           if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_LAUNCH && a.m_actionID == DWorld.ACTION_ID_LAUNCH_INDICATOR ||
		   	a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_LAUNCH && a.m_actionID == DWorld.ACTION_ID_LAUNCH_LAUNCH_FLY ||
		   	a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID != DWorld.ACTION_ID_FLYHURT_FLY_HURT_13 
		   	&& a.m_actionID != DWorld.ACTION_ID_FLYHURT_BLOOD)
            {
                a.m_y += PINGMUDDD.sssCHUANNN_HEIGHT << 8;
            }


            if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID == DWorld.ACTION_ID_FLYHURT_FIRE)
            {
                a.m_y += PINGMUDDD.sssCHUANNN_HEIGHT << 8;
            }
			
	     if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_COLLIDEHEAD ||
		 
		 	(s_windPower == 0 && a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_DRAGONBITE && 

		 	(a.m_actionID == DWorld.ACTION_ID_DRAGON_FLAG|| 
		 	a.m_actionID == DWorld.ACTION_ID_DRAGON_FLAG3)) ||
		 	(s_isActiveGameScene && ((a.m_flag & DWorld.ACTOR_FLAG_GAMESCENE) == 0)))
            {
            
                continue;
            }   

		   
            if (a.m_level != LV_OTHER)
            {
                if (a.m_level == LV_BG)
                {
                  
                   if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID == DWorld.ACTION_ID_FLYHURT_BLOOD)
				s_cutBlood = true;				   

		     a.Draw(g, jingtouX, jingtouY);
						
		    		
		     if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID == DWorld.ACTION_ID_FLYHURT_BLOOD)
				s_cutBlood = false;		

                    a.GoNextZhennnnnn();




                }
                else
                {
                   
                    insertPos = 0;
                    while (insertPos < s_inCameraJiaosesCount)
                    {
                        if (s_inCameraJiaosess[insertPos].m_level == LV_BG || 
                            s_inCameraJiaosess[insertPos].m_level == LV_OTHER)
                            break;
                          
                        if (s_inCameraJiaosess[insertPos].m_level < a.m_level)
                        insertPos++;
                        else if (s_inCameraJiaosess[insertPos].m_level > a.m_level)
                            break;
                       
                        else if (s_inCameraJiaosess[insertPos].m_y < a.m_y)
                            insertPos++;
                        else
                            break;
                    }
                        
                    for (int j = s_inCameraJiaosesCount; j > insertPos; j--)
                        s_inCameraJiaosess[j] = s_inCameraJiaosess[j - 1];
                    s_inCameraJiaosess[insertPos] = a;
                    s_inCameraJiaosesCount++;
                }
            }

             if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID == DWorld.ACTION_ID_FLYHURT_FIRE)
            {
                a.m_y -= PINGMUDDD.sssCHUANNN_HEIGHT << 8;
            }
		 
            if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_LAUNCH && a.m_actionID == DWorld.ACTION_ID_LAUNCH_INDICATOR||
		   	a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_LAUNCH && a.m_actionID == DWorld.ACTION_ID_LAUNCH_LAUNCH_FLY||
		   	a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID != DWorld.ACTION_ID_FLYHURT_FLY_HURT_13
		   	&& a.m_actionID != DWorld.ACTION_ID_FLYHURT_BLOOD)
            {
                a.m_y -= PINGMUDDD.sssCHUANNN_HEIGHT << 8;
            }
            
	  
        }

        jingtouY += DYNAMIC_ACTOR_DRAW_OFF_Y;	

        for (int i = 0; i < s_inCameraJiaosesCount; i++)
        {
            a = s_inCameraJiaosess[i];
            if (!((a.m_flag & DWorld.ACTOR_FLAG_INVISIBLE) != 0))
            {

                if (a.m_isStaticJiaoses)
                    a.Draw(g, jingtouX, jingtouY - DYNAMIC_ACTOR_DRAW_OFF_Y);	
                else
                {
			   
                    a.Draw(g, jingtouX, jingtouY);

			


                }
                    
              

                    a.GoNextZhennnnnn();

            }

        }

		if(s_isTralier)
		DrawcHUILEScene(g, jingtouX, jingtouY);
		
		


		
    }

   
    public static void MarchJiaosess()
    {
        Jiaose a;
        for (int i = 0; i < s_ajiaoseCount; i++)
        {
            a = s_ajiaoses[i];
            if (a.m_level != LV_OTHER)
            {
                a.GoNextZhennnnnn();
            }
        }
    }

    public int m_actionID;

    public boolean m_actionCircular = false;
 
    public boolean m_actionOver;


    public int m_embeddingZhennnnnnID;
   
    public int m_frameID;
  
    public int m_frameDuration;
 
    public boolean m_flipX;
 
    public boolean m_flipY;

   
    public void SetAction(int newActionID, boolean mustChange)
    {
        if (!mustChange && m_actionID == newActionID)
            return;

        m_actionID = newActionID;
        m_embeddingZhennnnnnID = 0;
        m_frameID = m_anim.GetZhennnnnnID(m_actionID, 0);
        m_frameDuration = 0;
        m_actionOver = false;
        
       
        shenJIIIIIIIHezzzzzzesInfo();

      

        SetCircular();
    }

    
    public void GoNextZhennnnnn()
    {

       
        m_embeddingZhennnnnnID++;
        if (m_embeddingZhennnnnnID >= m_anim.m_actions[m_actionID].length)
        {
            m_actionOver = true;
            if (m_actionCircular)
                m_embeddingZhennnnnnID = 0;
            else m_embeddingZhennnnnnID--;
        }		
        m_frameID = m_anim.m_actions[m_actionID][m_embeddingZhennnnnnID] & 0x00FF ;
        m_frameDuration = 0;
       
    }

  
    void shenJIIIIIIIMechInfo()
    {
        short[] mechModel = m_anim.m_mechModel;
        int offset = m_actionID << 2;
        m_vX = mechModel[offset+0];
        m_vY = -mechModel[offset+1];	
        m_aX = mechModel[offset+2];
        m_aY = -mechModel[offset+3];

        if ( m_flipX )
        {
            m_vX = -m_vX;
            m_aX = -m_aX;
        }
    }


    public static final int INDEX_BOX_LEFT = 0;
    public static final int INDEX_BOX_TOP = 1;
    public static final int INDEX_BOX_RIGHT = 2;
    public static final int INDEX_BOX_BOTTOM = 3;
    public static final int INDEX_BOX_FRONT = 4;
    public static final int INDEX_BOX_BACK = 5;

  
    void shenJIIIIIIIHezzzzzzesInfo()
    {
        try {
            int offset = m_frameID * 4;
            if (m_flipX)
            {
                m_collisionHezzzzzz[INDEX_BOX_LEFT] = - m_anim.m_colHezzzzzz[offset + INDEX_BOX_RIGHT];
                m_collisionHezzzzzz[INDEX_BOX_RIGHT] = - m_anim.m_colHezzzzzz[offset + INDEX_BOX_LEFT];

                m_collisionHezzzzzz[INDEX_BOX_FRONT] = m_collisionHezzzzzz[INDEX_BOX_LEFT];
                m_collisionHezzzzzz[INDEX_BOX_BACK] = m_collisionHezzzzzz[INDEX_BOX_RIGHT];

                m_attackHezzzzzz[INDEX_BOX_LEFT] = - m_anim.m_attHezzzzzz[offset + INDEX_BOX_RIGHT];
                m_attackHezzzzzz[INDEX_BOX_RIGHT] = - m_anim.m_attHezzzzzz[offset + INDEX_BOX_LEFT];
            }
            else
            {
                m_collisionHezzzzzz[INDEX_BOX_LEFT] = m_anim.m_colHezzzzzz[offset + INDEX_BOX_LEFT];
                m_collisionHezzzzzz[INDEX_BOX_RIGHT] = m_anim.m_colHezzzzzz[offset + INDEX_BOX_RIGHT];

                m_collisionHezzzzzz[INDEX_BOX_FRONT] = m_collisionHezzzzzz[INDEX_BOX_RIGHT];
                m_collisionHezzzzzz[INDEX_BOX_BACK] = m_collisionHezzzzzz[INDEX_BOX_LEFT];

                m_attackHezzzzzz[INDEX_BOX_LEFT] = m_anim.m_attHezzzzzz[offset + INDEX_BOX_LEFT];
                m_attackHezzzzzz[INDEX_BOX_RIGHT] = m_anim.m_attHezzzzzz[offset + INDEX_BOX_RIGHT];
            }

            if (m_flipY)
            {
                m_collisionHezzzzzz[INDEX_BOX_TOP] = - m_anim.m_colHezzzzzz[offset + INDEX_BOX_BOTTOM];
                m_collisionHezzzzzz[INDEX_BOX_BOTTOM] = - m_anim.m_colHezzzzzz[offset + INDEX_BOX_TOP];

                m_attackHezzzzzz[INDEX_BOX_TOP] = - m_anim.m_attHezzzzzz[offset + INDEX_BOX_BOTTOM];
                m_attackHezzzzzz[INDEX_BOX_BOTTOM] = - m_anim.m_attHezzzzzz[offset + INDEX_BOX_TOP];
            }
            else
            {
                m_collisionHezzzzzz[INDEX_BOX_TOP] = m_anim.m_colHezzzzzz[offset + INDEX_BOX_TOP];
                m_collisionHezzzzzz[INDEX_BOX_BOTTOM] = m_anim.m_colHezzzzzz[offset + INDEX_BOX_BOTTOM];

                m_attackHezzzzzz[INDEX_BOX_TOP] = m_anim.m_attHezzzzzz[offset + INDEX_BOX_TOP];
                m_attackHezzzzzz[INDEX_BOX_BOTTOM] = m_anim.m_attHezzzzzz[offset + INDEX_BOX_BOTTOM];
            }
        }
        catch (Exception ex) {
            ex.printStackTrace();

⌨️ 快捷键说明

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