我知道有人问过这个问题,但是就我而言,我不知道自从我尝试使用它以来它是否可以使用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是否在循环时也循环。有人可以在这里帮我吗?
答案 0 :(得分:0)
我不确定您要的是什么,但是如果您想从鼠标事件中获取移动方向,除非鼠标事件具有最后位置和新位置属性,否则您需要跟踪最后一个位置(x和y值)并将其与当前位置一起使用以计算角度。
有关角度的计算,请参阅 Calculating the angle between the line defined by two points
我可以提供更多信息更好的答案。