Вот пример некоторого кода я должен обрабатывать tpouch жесты:Транслейтинг сенсорные жесты для жестов мыши
public void HandleInput()
{
TouchPanel.EnabledGestures =
GestureType.FreeDrag | GestureType.DragComplete | GestureType.DoubleTap | GestureType.Tap;
while (TouchPanel.IsGestureAvailable)
{
GestureSample gs = TouchPanel.ReadGesture();
switch (gs.GestureType)
{
case GestureType.FreeDrag:
...
break;
case GestureType.DragComplete:
...
break;
case GestureType.DoubleTap:
...
break;
case GestureType.Tap:
...
break;
...
Это записывается с помощью monogame (т.е. XNA), и я запоздало понял, что я не обрабатывал ввод мыши для случаев, когда целевая машина (WinRT) не имела сенсорных возможностей.
До сих пор единственным способом я наткнулся обработки жестов мыши выглядит следующим образом:
MouseState mouseState = Mouse.GetState();
Vector2 mousePosition = new Vector2(mouseState.X, mouseState.Y);
if (mouseState.LeftButton == ButtonState.Pressed)
...
я могу видеть, что можно было бы достичь здесь то же самое, но я хотел бы быть ленивым и обрезать угол (и надеяться на более простой код). Итак, мой вопрос двоякий:
- Можно ли обрабатывать мышь «жесты»?
- Если это не так, есть способ убедить XNA в том, что мышь на самом деле касается (симулятор для Windows 8 делает это очень хорошо).