Beispiel #1
0
 /// <summary>
 /// 地面行走
 /// </summary>
 void GoToTerrain()
 {
     if (m_PlayerBehaviour.IsHero)
     {
         if (m_PlayerBehaviour.TargetType == ResourceType.Terrain && GameManager.Instance.CurrentState == GameManager.GameState.GAME_STATE_BATTLE)
         {
             Vector3 targetPos = m_PlayerBehaviour.ThisTransform.position + m_moveVector;
             UpdateRotation(targetPos);
             UpdateRunState();
         }
         else
         {
             m_playerMoveMode = PlayerMoveMode.RUN;
             Vector2 V1           = new Vector2(this.m_PlayerBehaviour.ThisTransform.position.x, this.m_PlayerBehaviour.ThisTransform.position.z);
             Vector2 V2           = new Vector2(this.m_PlayerBehaviour.WalkToPosition.Value.x, this.m_PlayerBehaviour.WalkToPosition.Value.z);
             var     walkDistance = Vector2.Distance(V1, V2);   //this.m_PlayerBehaviour.ThisTransform.position, this.m_PlayerBehaviour.WalkToPosition.Value);
             var     targetPos    = this.m_PlayerBehaviour.WalkToPosition.Value;
             Vector3 from         = new Vector3(targetPos.x, this.m_PlayerBehaviour.ThisTransform.position.y, targetPos.z);
             m_moveVector   = from - this.m_PlayerBehaviour.ThisTransform.position;
             m_moveVector.y = 0;
             m_moveVector.Normalize();
             UpdateRotation(targetPos);
             //this.m_PlayerBehaviour.ThisTransform.rotation = Quaternion.LookRotation(from - this.m_PlayerBehaviour.ThisTransform.position, Vector3.up);
             //TraceUtil.Log(walkDistance);
             if (walkDistance < ConfigDefineManager.DISTANCE_ARRIVED_TARGET)
             {
                 this.m_PlayerBehaviour.WalkToPosition = null;
                 //TraceUtil.Log("Stop:"+walkDistance);
             }
         }
     }
     else
     {
     }
 }
Beispiel #2
0
    public void UpdateRunState()
    {
        float dt = Time.deltaTime;

        if (m_playerMoveMode == PlayerMoveMode.RUN)
        {
            if (m_runTime <= 0)
            {
                m_runTime        = 0;
                m_playerMoveMode = PlayerMoveMode.WALK;
            }
            else
            {
                m_runTime -= dt;
            }
        }
        else if (m_playerMoveMode == PlayerMoveMode.WALK)
        {
            if (m_walkTime <= 0)
            {
                m_moveEnd = true;
            }
            else
            {
                m_walkTime -= dt;
            }
        }
    }
Beispiel #3
0
    public void StartToRun(float runTime, float walkTime)
    {
        m_runTime        = runTime;
        m_walkTime       = walkTime;
        m_playerMoveMode = PlayerMoveMode.RUN;
        m_moveEnd        = false;
        m_moveVector     = (this.m_PlayerBehaviour.WalkToPosition.Value - this.m_PlayerBehaviour.ThisTransform.position);
        m_moveVector.y   = 0;
        m_moveVector.Normalize();


        Vector2 V1           = new Vector2(this.m_PlayerBehaviour.ThisTransform.position.x, this.m_PlayerBehaviour.ThisTransform.position.z);
        Vector2 V2           = new Vector2(this.m_PlayerBehaviour.WalkToPosition.Value.x, this.m_PlayerBehaviour.WalkToPosition.Value.z);
        var     walkDistance = Vector2.Distance(V1, V2);//this.m_PlayerBehaviour.ThisTransform.position, this.m_PlayerBehaviour.WalkToPosition.Value);
        var     targetPos    = this.m_PlayerBehaviour.WalkToPosition.Value;
        //Vector3 from = new Vector3(targetPos.x, this.m_PlayerBehaviour.ThisTransform.position.y, targetPos.z);
        //this.m_PlayerBehaviour.ThisTransform.rotation = Quaternion.LookRotation(from - this.m_PlayerBehaviour.ThisTransform.position, Vector3.up);
    }
Beispiel #4
0
    public void UpdatePlayerMoveMode(PlayerMoveMode playerMoveMode)
    {
        switch (playerMoveMode)
        {
        case PlayerMoveMode.Crouch:
            _characterAnimator.SetFloat(PlayerAnimatorStringReferences.MoveState, _playerSpeed.CrouchSpeed);
            _moveSpeed = _playerSpeed.CrouchSpeed;
            break;

        case PlayerMoveMode.Walk:
            _characterAnimator.SetFloat(PlayerAnimatorStringReferences.MoveState, _playerSpeed.WalkSpeed);
            _moveSpeed = _playerSpeed.WalkSpeed;
            break;

        case PlayerMoveMode.Run:
            _characterAnimator.SetFloat(PlayerAnimatorStringReferences.MoveState, _playerSpeed.RunSpeed);
            _moveSpeed = _playerSpeed.RunSpeed;
            break;
        }
    }
Beispiel #5
0
    public override void DoBeforeEntering()
    {
        m_lockStep = 3;
        if (GameManager.Instance.CurrentState == GameManager.GameState.GAME_STATE_BATTLE && m_PlayerBehaviour.IsHero)
        {
            if (m_PlayerBehaviour.m_runEffect != null)
            {
                //TODO; set to active when the effect artwork is done
                m_PlayerBehaviour.m_runEffect.gameObject.SetActive(true);
            }
            if (!GameManager.Instance.UseJoyStick)
            {
                StartToRun(2.0f, 2.0f);
            }
            m_playerMoveMode = PlayerMoveMode.RUN;
        }

        m_rotationToTarget = true;
        this.m_PlayerBehaviour.GetSkillBySkillID(null);
        base.DoBeforeEntering();
    }
Beispiel #6
0
    private void GoToTarget()
    {
        //如果摇杆在动,点击就没有起效,在城镇界面UseJoyStick一直为false,城镇和这个变量一点关系都没有//
        if ((GameManager.Instance.CurrentState == GameManager.GameState.GAME_STATE_TOWN && m_PlayerBehaviour.IsJoyStickPress) || GameManager.Instance.UseJoyStick)
        {
            Vector3 moveDir = m_PlayerBehaviour.JoyStickDir;
            if (moveDir != Vector3.zero)
            {
                this.m_PlayerBehaviour.WalkToPosition     = null;
                this.m_PlayerBehaviour.LastWalkToPosition = null;
                m_playerMoveMode = PlayerMoveMode.RUN;
                Vector3 lootAtPos = m_PlayerBehaviour.ThisTransform.position + moveDir * 10;
                lootAtPos.y = m_PlayerBehaviour.ThisTransform.position.y;
                this.m_PlayerBehaviour.ThisTransform.rotation = Quaternion.LookRotation(lootAtPos - this.m_PlayerBehaviour.ThisTransform.position, Vector3.up);
                m_moveVector   = moveDir;
                m_moveVector.y = 0;
                m_moveVector.Normalize();
            }
        }
        else
        {
            switch (this.m_PlayerBehaviour.TargetType)
            {
            case ResourceType.Terrain:
                GoToTerrain();
                break;

            case ResourceType.Portal:
                GoToPortal();
                break;

            case ResourceType.NPC:
                GoToNPC();
                break;
            }
        }
    }