MonoGame - 针对不同目的使用特定手势

时间:2014-11-18 00:17:04

标签: c# mobile input touch monogame

我特别困境的部分原因是我希望能够获得拖动手势的初始位置。根据该拖动手势的初始位置,应用程序将1)平移视图或2)显示菜单,但不能同时执行这些手势(这是斗争的一部分)。

例如,如果用户从屏幕的最左侧开始拖动并向内拖动,则会弹出一个菜单而不是视图平移。

我还希望能够执行双击手势而不会激活轻击手势,如果可能的话。我尝试过使用布尔标志 - 例如,

// ...
if (gesture.GestureType == GestureType.DoubleTap)
{
    isDoubleTap == true;
}

// ...
public static Vector2 Tap
{
    get
    {
        if (!isDoubleTap)
            return gesture.Position;
        // ...

但这不起作用。

我尝试过使用TouchCollection - 如果有人希望我能够尽我所能详细说明我的问题,但是现在我会说我尝试过的东西没有用。完全有可能我可能只是因为我是一个新手来处理触摸输入。

我已经在这方面工作了几天,尽可能多地搜索,我发现的任何东西都没有解决我的问题 - 如果我碰巧错过了什么,我道歉。

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

关于拖拽的起始位置:

有一个拖动结束的手势,所以如果你收到一个拖动,它是自上一次拖动结束后的第一个,那就是初始位置。

关于点击/双击:

MonoGame与XNA的工作方式与documented here相同:

  

用户快速连续两次点击屏幕。这个   总是先点击手势。

这听起来像输入绑定设计问题而非技术问题imo。还要考虑一下你可以移动到什么地方而不是仅仅使用手势。