Ejemplo n.º 1
0
 /// <summary>
 /// Movement in Left/Right directions
 /// </summary>
 /// <param name="direction">Left/Right</param>
 public void MoveInDirection(CharacterMoveDirection direction)
 {
     RotateInDirection(direction);
     if (direction == CharacterMoveDirection.Left)
     {
         _characterView.transform.position += Vector3.left * Time.deltaTime * _characterModel._movementSpeed;
     }
     else
     {
         _characterView.transform.position += Vector3.right * Time.deltaTime * _characterModel._movementSpeed;
     }
 }
Ejemplo n.º 2
0
    // 移動
    public Vector2 CharacterMove(CharacterMoveDirection cmd)
    {
        float dx = 0, dy = 0;

        switch (cmd)
        {
        case CharacterMoveDirection.Top:
            dy = 1;
            break;

        case CharacterMoveDirection.Right:
            dx = 1;
            break;

        case CharacterMoveDirection.Bottom:
            dy = -1;
            break;

        case CharacterMoveDirection.Left:
            dx = -1;
            break;

        case CharacterMoveDirection.TopRight:
            dy = 1;
            dx = 1;
            break;

        case CharacterMoveDirection.TopLeft:
            dy = 1;
            dx = -1;
            break;

        case CharacterMoveDirection.BottomRight:
            dy = -1;
            dx = 1;
            break;

        case CharacterMoveDirection.BottomLeft:
            dy = -1;
            dx = -1;
            break;
        }

        pos = new Vector2(dx / MoveDelay, dy / MoveDelay);
        return(pos);
    }
Ejemplo n.º 3
0
    /// <summary>
    /// Character orientation in Left/Right directions
    /// </summary>
    /// <param name="direction">Facing Left/Right</param>
    private void RotateInDirection(CharacterMoveDirection direction)
    {
        if (direction == CharacterMoveDirection.Right)
        {
            if (_characterView.transform.rotation == _rightRotation)
            {
                return;
            }

            _characterView.transform.rotation = _rightRotation;
        }
        else
        {
            if (_characterView.transform.rotation == _leftRotation)
            {
                return;
            }

            _characterView.transform.rotation = _leftRotation;
        }
    }
    public void SetCurrentMoveDir(Vector3 playerDir) { // this method is called in "RPG_Controller" in line 60 when it is checking for movement inputs and sets the variable currentMoveDir 
        bool forward = false;
        bool backward = false;
        bool left = false;
        bool right = false;

        if (playerDir.z > 0)
            forward = true;
        if (playerDir.z < 0)
            backward = true;
        if (playerDir.x < 0)
            left = true;
        if (playerDir.x > 0)
            right = true;

        if (forward) { 
            if (left)
                currentMoveDir = CharacterMoveDirection.StrafeForwardLeft;
            else if (right)
                currentMoveDir = CharacterMoveDirection.StrafeForwardRight;
            else
                currentMoveDir = CharacterMoveDirection.Forward;
        } else if (backward) {
            if (left)
                currentMoveDir = CharacterMoveDirection.StrafeBackLeft;
            else if (right)
                currentMoveDir = CharacterMoveDirection.StrafeBackRight;
            else
                currentMoveDir = CharacterMoveDirection.Backward;
        } else if (left)
            currentMoveDir = CharacterMoveDirection.StrafeLeft;
        else if (right)
            currentMoveDir = CharacterMoveDirection.StrafeRight;
        else
            currentMoveDir = CharacterMoveDirection.None;
    }
Ejemplo n.º 5
0
    public void SetCurrentMoveDir(Vector3 playerDir)   // this method is called in "RPG_Controller" in line 60 when it is checking for movement inputs and sets the variable currentMoveDir
    {
        bool forward  = false;
        bool backward = false;
        bool left     = false;
        bool right    = false;

        if (playerDir.z > 0)
        {
            forward = true;
        }
        if (playerDir.z < 0)
        {
            backward = true;
        }
        if (playerDir.x < 0)
        {
            left = true;
        }
        if (playerDir.x > 0)
        {
            right = true;
        }

        if (forward)
        {
            if (left)
            {
                currentMoveDir = CharacterMoveDirection.StrafeForwardLeft;
            }
            else if (right)
            {
                currentMoveDir = CharacterMoveDirection.StrafeForwardRight;
            }
            else
            {
                currentMoveDir = CharacterMoveDirection.Forward;
            }
        }
        else if (backward)
        {
            if (left)
            {
                currentMoveDir = CharacterMoveDirection.StrafeBackLeft;
            }
            else if (right)
            {
                currentMoveDir = CharacterMoveDirection.StrafeBackRight;
            }
            else
            {
                currentMoveDir = CharacterMoveDirection.Backward;
            }
        }
        else if (left)
        {
            currentMoveDir = CharacterMoveDirection.StrafeLeft;
        }
        else if (right)
        {
            currentMoveDir = CharacterMoveDirection.StrafeRight;
        }
        else
        {
            currentMoveDir = CharacterMoveDirection.None;
        }
    }