示例#1
0
        public async Task SendMouseClick(string button, ClickDirection direction = ClickDirection.PressAndRelease, Duration duration = null)
        {
            if (string.IsNullOrEmpty(button))
            {
                return;
            }

            if (duration == null)
            {
                duration = AverageClickDuration;
            }

            button = button.ToLowerInvariant();

            if (!Buttons.ContainsKey(button))
            {
                return;
            }

            var buttonValue = Buttons[button];

            switch (direction)
            {
            case ClickDirection.Press:
                SendButtonPress(buttonValue);
                break;

            case ClickDirection.Release:
                SendButtonRelease(buttonValue);
                break;

            case ClickDirection.PressAndRelease:
            default:
                SendButtonPress(buttonValue);
                await Util.Hesitate(duration);

                SendButtonRelease(buttonValue);
                break;
            }
        }
    // Update is called once per frame
    void Update()
    {
        ClickDirection dir = ClickDirection.Down;


        float horiz = Input.GetAxisRaw("Horizontal");
        float vert = Input.GetAxisRaw("Vertical");
        bool  left, right, up, down;
        bool  walking;

        left    = horiz < 0 ? true : false;
        right   = horiz > 0 ? true : false;
        up      = vert > 0 ? true : false;
        down    = vert < 0 ? true : false;
        walking = left || right || up || down;

        transform.parent.position += ((new Vector3(horiz, vert))) * Time.deltaTime * speed;

        //Clamping player position
        Vector3 pos = Camera.main.WorldToViewportPoint(transform.position);

        pos.x = Mathf.Clamp01(pos.x);
        pos.y = Mathf.Clamp01(pos.y);
        transform.position = Camera.main.ViewportToWorldPoint(pos);

        Vector3 mousepos = Input.mousePosition;
        Vector3 objpos   = Camera.main.WorldToScreenPoint(transform.position);

        mousepos.x -= objpos.x;
        mousepos.y -= objpos.y;

        rotationlock = swordAnimator.GetCurrentAnimatorStateInfo(0).IsName("StaffSwing") ? true : false;

        if (rotationlock)
        {
            myCanvas.transform.GetChild(1).GetComponent <Text>().text = "Fireball!";
            myCanvas.SetActive(true);
            mySword.SetActive(true);
        }
        else
        {
            mySword.SetActive(false);
            myCanvas.SetActive(false);
        }

        float angle = Mathf.Atan2(mousepos.y, mousepos.x) * Mathf.Rad2Deg;

        //Debug.Log(angle);
        if (angle < 45 && angle > -45)
        {
            dir = ClickDirection.Right;
        }
        else if (angle > 45 && angle < 135)
        {
            dir = ClickDirection.Up;
        }
        else if (angle > 135 || angle < -135)
        {
            dir = ClickDirection.Left;
        }
        else if (angle > -135 && angle < -45)
        {
            dir = ClickDirection.Down;
        }


        //transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle - 90));
        if (!rotationlock)
        {
            gameObject.transform.GetChild(0).transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle));
        }

        myAnimator.SetBool("FacingLeft", false);
        myAnimator.SetBool("FacingRight", false);
        myAnimator.SetBool("FacingUp", false);
        myAnimator.SetBool("FacingDown", false);


        myAnimator.SetBool("Right", right);
        myAnimator.SetBool("Left", left);
        myAnimator.SetBool("Up", up);
        myAnimator.SetBool("Down", down);

        myAnimator.SetBool("Walking", walking);

        switch (dir)
        {
        case ClickDirection.Right:
            myAnimator.SetBool("FacingRight", true);
            break;

        case ClickDirection.Left:
            myAnimator.SetBool("FacingLeft", true);
            break;

        case ClickDirection.Up:
            myAnimator.SetBool("FacingUp", true);
            break;

        case ClickDirection.Down:
            myAnimator.SetBool("FacingDown", true);
            break;

        default:
            break;
        }


        if (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.Mouse0))
        {
            Shoot();
        }


        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            Teleport();
        }
    }
    private void SetAnimator(bool left, bool right, bool up, bool down, bool walking, ClickDirection dir)
    {
        myAnimator.SetBool("FacingLeft", false);
        myAnimator.SetBool("FacingRight", false);
        myAnimator.SetBool("FacingUp", false);
        myAnimator.SetBool("FacingDown", false);


        myAnimator.SetBool("Right", right);
        myAnimator.SetBool("Left", left);
        myAnimator.SetBool("Up", up);
        myAnimator.SetBool("Down", down);

        myAnimator.SetBool("Walking", walking);


        switch (dir)
        {
        case ClickDirection.Right:
            myAnimator.SetBool("FacingRight", true);
            break;

        case ClickDirection.Left:
            myAnimator.SetBool("FacingLeft", true);
            break;

        case ClickDirection.Up:
            myAnimator.SetBool("FacingUp", true);
            break;

        case ClickDirection.Down:
            myAnimator.SetBool("FacingDown", true);
            break;

        default:
            break;
        }
    }
    // Update is called once per frame
    void Update()
    {
        ClickDirection dir = ClickDirection.Down;

        if (Input.GetKeyDown(KeyCode.X))
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        }

        float horiz = Input.GetAxisRaw("Horizontal");
        float vert = Input.GetAxisRaw("Vertical");
        bool  left, right, up, down;
        bool  walking;

        left    = horiz < 0;
        right   = horiz > 0;
        up      = vert > 0;
        down    = vert < 0;
        walking = left || right || up || down;

        transform.position += ((new Vector3(horiz, vert))) * Time.deltaTime * speed;

        //Clamping player position
        Vector3 pos = Camera.main.WorldToViewportPoint(transform.position);

        //pos.x = Mathf.Clamp01(pos.x);
        //pos.y = Mathf.Clamp01(pos.y);
        transform.position = Camera.main.ViewportToWorldPoint(pos);
        Vector3 mousepos = Input.mousePosition;
        Vector3 objpos   = Camera.main.WorldToScreenPoint(transform.position);

        mousepos.x -= objpos.x;
        mousepos.y -= objpos.y;

        rotationlock = swordAnimator.GetCurrentAnimatorStateInfo(0).IsName("StaffSwing") ? true : false;

        if (rotationlock)
        {
            myCanvas.SetActive(true);
            mySword.SetActive(true);
        }
        else
        {
            mySword.SetActive(false);
            myCanvas.SetActive(false);
        }

        float angle = Mathf.Atan2(mousepos.y, mousepos.x) * Mathf.Rad2Deg;

        if (angle < 45 && angle > -45)
        {
            dir = ClickDirection.Right;
        }
        else if (angle > 45 && angle < 135)
        {
            dir = ClickDirection.Up;
        }
        else if (angle > 135 || angle < -135)
        {
            dir = ClickDirection.Left;
        }
        else if (angle > -135 && angle < -45)
        {
            dir = ClickDirection.Down;
        }

        //transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle - 90));
        if (!rotationlock)
        {
            gameObject.transform.GetChild(0).transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle + 10));
        }

        SetAnimator(left, right, up, down, walking, dir);


        if (Input.GetKeyDown(KeyCode.Mouse0) && !rotationlock)
        {
            Shoot();
        }
        if (Input.GetKeyDown(KeyCode.Space) && dash_charge > 0)
        {
            Dash(left, right, up, down, mousepos.x, mousepos.y);
        }
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            Teleport();
        }
    }
示例#5
0
 /*! \brief Create the arguments for a Click event from the raw event data.  */
 public ClickEventArgs(IntPtr unmanagedEventBlock) : base(unmanagedEventBlock)
 {
     Direction = (ClickDirection)Marshal.ReadInt32(RawEventData, EventOffset.Direction);
 }