【问题标题】:Get Movement Direction of Mouse获取鼠标的运动方向
【发布时间】:2019-03-02 00:04:05
【问题描述】:

我知道这已经被问过了,但在我的情况下,我不知道我是否可以使用 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 是否也循环。有人可以帮我吗?

【问题讨论】:

  • 您的目标是什么:Winforms、WPF、ASP..?您应该始终正确标记您的问题,以便人们可以在问题页面上看到它!

标签: c# mouse


【解决方案1】:

我不完全确定您要的是什么,但是如果您想从鼠标事件中获取移动方向,除非鼠标事件具有最后一个位置和新的位置属性,否则您需要跟踪最后一个位置(x 和 y 值)并将其与当前位置一起用于计算角度。

有关计算角度,请参阅 Calculating the angle between the line defined by two points

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-12
    • 2012-08-31
    • 2010-12-13
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    相关资源
    最近更新 更多