我正在开发一个使用Monogame的多点触控应用程序,多个用户可以在一个更大的多点触摸屏上同时操作不同的文档/图像/视频,我想知道是否有可能让手势“上下文感知”,即两个手指在墙的一边夹住一个文档不应该影响到有人在墙的另一边平移。
Monogame的工作方式是,所有输入点都被转换为手势,可以使用以下命令读取:
if (TouchPanel.IsGestureAvailable)
{
var gesture = TouchPanel.ReadGesture();
// do stuff
}
有没有一种方法可以将手势限制在屏幕上的某个点,或者我需要自己实现?例如,通过查看源代码,似乎所有工作都是由TouchPanelState
类完成的,但不幸的是,它的构造函数是internal
。
发布于 2015-01-10 10:35:16
该功能没有内置到MonoGame中,因为它不是原始XNA的一部分。从本质上说,你想要一个以上的“逻辑”TouchPanel由它的窗口的子矩形定义。然而,TouchPanel是静态的,因此在默认的XNA中整个游戏只有一个。
好消息是MonoGame有自己的手势识别功能。因此,代码已经存在,您只需对MonoGame进行一些更改。
例如。
-Make TouchPanel一个非静态类,可以分配给一个给定的subrect。
所有TouchPanel方法的-Add非静态版本。
-The静态方法重定向到TouchPanel的单例/实例,保留旧的API。
...now你可以选择分配更多的TouchPanel而不是整个屏幕。
注意:这对你没有帮助,但MonoGame确实允许你有多个操作系统窗口(在windows上只有afaik),在这种情况下,静态TouchPanel是第一个窗口,并且有一个单独的API用于访问任何其他窗口的触摸输入/手势。
https://stackoverflow.com/questions/27330709
复制相似问题