Пример #1
0
 // Update is called once per frame
 void Update()
 {
     if (m_bTrigger == false)
     {
         if (PlayerState.GetPlayerState() == PlayerStateDefine.PlayerState_Typ.playerState_Idle)
         {
             if (!(m_rigidbody.velocity.x > 0 || m_rigidbody.velocity.x < 0 || m_rigidbody.velocity.y < 0 || m_rigidbody.velocity.y > 0))
             {
                 bool           bRes   = false;
                 RaycastHit2D[] lstHit = Physics2D.RaycastAll(transform.position + transform.right * _getDiffTime() * CheckDistance, -transform.up, CheckFallDistance, CheckMask);
                 if (lstHit.Length > 0)
                 {
                     bRes = true;
                 }
                 if (bRes == false)
                 {
                     //Anim.SetTrigger("IsFall");
                     m_bTrigger = true;
                 }
             }
         }
     }
     else
     {
         if ((m_rigidbody.velocity.x > 0 || m_rigidbody.velocity.x < 0))
         {
             m_bTrigger = false;
         }
     }
 }
Пример #2
0
    private void UpdatePlayerState(int playerID, int state)
    {
        GameObject playerTemp;

        if (playerID == m_PlayerSelf.GetUID())
        {
            return;
        }
        else
        {
            if (!psm.Contains(playerID))
            {
                psm.AddPlayerState(playerID, new PlayerState(0.9));
            }

            playerTemp = m_PlayerList[playerID].GetSelf();//psm.GetPlayer(playerID).GetPlayer();
            PlayerState playerState    = psm.GetPlayerState(playerID);
            Animator    playerAnimator = playerTemp.GetComponent <Animator>();

            if ((state & (int)KeyboardState.Up) != 0 || (state & (int)KeyboardState.Down) != 0 || (state & (int)KeyboardState.Left) != 0 || (state & (int)KeyboardState.Right) != 0)
            {
                playerAnimator.SetBool("walk", false);

                if ((state & (int)KeyboardState.Up) != 0)
                {
                    //=============================== change =================================//
                    playerAnimator.SetBool("walk", true);
                }
            }
            else
            {
                playerAnimator.SetBool("walk", false);
                playerAnimator.SetBool("stand", true);
            }

            if ((state & (int)KeyboardState.E) != 0)
            {
                playerAnimator.SetTrigger("attackT2");
            }
            else if ((state & (int)KeyboardState.Q) != 0)
            {
                playerAnimator.SetTrigger("attackT1");
            }
        }
    }
Пример #3
0
    void Update()
    {
        if (active == false)
        {
            return;
        }

        if (Input.GetMouseButton(1) || (rPlayer != null && rPlayer.GetButton("Dash")) || (playerControl.controlState == PlayerControl1.ControlWay.isMobile && TouchControl.Instance.dashDrag))
        {
            if (m_stateMgr.GetPlayerState() == PlayerStateDefine.PlayerState_Typ.playerState_Idle || m_stateMgr.GetPlayerState() == PlayerStateDefine.PlayerState_Typ.playerState_Jumping)
            {
                if (currWaitTime == 0)
                {
                    AniCom.PlayerDashCharging();
                    if (m_stateMgr.GetPlayerState() == PlayerStateDefine.PlayerState_Typ.playerState_Jumping)
                    {
                        m_stateMgr.SetPlayerState(PlayerStateDefine.PlayerState_Typ.playerState_Dash);
                    }
                    else if (m_stateMgr.GetPlayerState() == PlayerStateDefine.PlayerState_Typ.playerState_Idle)
                    {
                        m_stateMgr.SetPlayerState(PlayerStateDefine.PlayerState_Typ.playerState_IdleDash);
                    }
                }
                else
                {
                    int a = 0;
                }
            }
            else
            {
                if (m_stateMgr.GetPlayerState() == PlayerStateDefine.PlayerState_Typ.playerState_Dash || m_stateMgr.GetPlayerState() == PlayerStateDefine.PlayerState_Typ.playerState_IdleDash)
                {
                    currWaitTime += 1;
                }
            }
        }
        if (Input.GetMouseButtonDown(1) || rPlayer.GetButtonDown("Dash"))
        {
            playerControl.swap.curr = 0f;
        }

        if (Mathf.Abs(rPlayer.GetAxis("MoveHorizontal")) > 0)
        {
            int a = 0;
        }
        //Debug.Log(Time.timeScale);
        //播放冲刺情况下的动画
        if (isDashing)
        {
            //冲刺中动画
            //gaidao要求去除这个旋转
            //transform.rotation = Quaternion.Euler(0, 0, -AngleBetween(Vector2.up, GetComponent<Rigidbody2D>().velocity));
        }
        bool bChargingDash = false;

        //Rewired------------------------------------------------------------
        if ((Input.GetMouseButton(1) && charge >= 1 && currWaitTime >= waitTime) ||
            (rPlayer.GetButton("Dash") && charge >= 1 && currWaitTime >= waitTime) ||
            (!(playerControl.controlState == PlayerControl1.ControlWay.isKeyboard) && TouchControl.Instance.dashDrag && charge >= 1 && currWaitTime >= waitTime))
        {
            //蓄力粒子
            if (_dashChargeParticle == null)
            {
                _dashChargeParticle = Instantiate(dashChargingParticle, transform.position, Quaternion.identity, transform);
            }


            //显示箭头
            if (dashPointer != null)
            {
                if (DashPointerShow == true)
                {
                    Vector2 mouseWorldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                    Vector2 dir           = (mouseWorldPos - (Vector2)player.transform.position).normalized;
                    dashPointer.SetActive(true);
                    dashPointer.transform.position      = (Vector2)transform.position + dir * 70f;
                    dashPointer.transform.localRotation = Quaternion.Euler(0, 0, -AngleBetween(Vector2.up, dir));
                }
            }

            playerControl.swap.realWaitTime = playerControl.swap.waitTime;
            playerControl.targetDeltaTime   = Time.fixedDeltaTime;
            playerControl.targetTimeScale   = Time.timeScale;

            m_bulletTime.ActiveBulletTime(true, BulletTime.BulletTimePriority.BulletTimePriority_High);

            //辅助线指示
            DrawTrajectory();

            //播放动态残影
            playerControl.SetColShadow();

            if (isDashing == false)
            {
                if (m_bDashCharging == false)
                {
                    m_bDashCharging          = true;
                    m_fDashLimitChargingTime = 0.0f;
                }
                else
                {
                    m_fDashLimitChargingTime += (Time.deltaTime / Time.timeScale);
                    if (m_fDashLimitChargingTime >= DashLimitChargingTime)
                    {
                        m_bDashCharging = false;
                        m_bulletTime.ActiveBulletTime(false, BulletTime.BulletTimePriority.BulletTimePriority_High);
                        m_bChargeZero = true;
                        playerControl.DashRequestByPlayer();
                        bChargingDash = true;
                    }
                }
            }
        }

        //Rewired------------------------------------------------------------
        if (Input.GetMouseButtonUp(1) || rPlayer.GetButtonUp("Dash"))
        {
            m_bulletTime.ActiveBulletTime(false, BulletTime.BulletTimePriority.BulletTimePriority_High);
        }
        if (playerControl.isTouchingGround && bChargingDash == false && isDashing == false)
        {
            charge = maxCharge;
        }
    }