簡體   English   中英

獲取鼠標的移動方向

[英]Get Movement Direction of Mouse

我知道有人問過這個問題,但就我而言,我不知道是否可以使用MouseEventArgs,因為它有一個渲染/輸入循環,我正在嘗試使用它,這是整個渲染/輸入循環,我只能使用鍵盤移動不太方便。

public void update()
    {


        //--do raycast--//
        raycast();

        //=========================//
        //=====take user input=====//
        //=========================//

        KeyboardState state = Keyboard.GetState();

        bool lArrowKeyDown = state.IsKeyDown(Keys.Left) || state.IsKeyDown(Keys.A);

        //MouseLeft
        if (lArrowKeyDown)
        {
            rotate(rotSpeed);
        }
        //MouseRight
        bool rArrowKeyDown = state.IsKeyDown(Keys.Right) || state.IsKeyDown(Keys.D);

        if (rArrowKeyDown)
        {
            rotate(-rotSpeed);
        }
        //MouseUp
        bool uArrowKeyDown = state.IsKeyDown(Keys.Up) || state.IsKeyDown(Keys.W);
        bool shift = state.IsKeyDown(Keys.LeftShift);
        if (uArrowKeyDown)
        {
            move(moveSpeed);
        }
        if (uArrowKeyDown && shift)
        {
            move(moveSpeed+0.01);
        }

        bool dArrowKeyDown = state.IsKeyDown(Keys.Down) || state.IsKeyDown(Keys.S);
        //MouseDown
        if (dArrowKeyDown)
        {
            move(-moveSpeed);
        }

        //=========================//
        //=====user input end======//
        //=========================//
    }

這是整個渲染/輸入循環,是否可以添加MouseEventArgs? 不確定MouseEventArgs是否在循環時也循環。 有人可以幫我嗎?

我不確定您要的是什么,但是如果您想從鼠標事件中獲取移動方向,除非鼠標事件具有最后位置和新位置屬性,否則您需要跟蹤最后一個位置(x和y值),並將其與當前位置一起使用以計算角度。

要計算角度,請參閱計算由兩點定義的線之間的角度

我可以提供更多信息更好的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM