gpt4 book ai didi

c# - 是否有可能在 Monogame/XNA 中获得 "contextual"手势?

转载 作者:可可西里 更新时间:2023-11-01 03:02:21 24 4
gpt4 key购买 nike

我正在使用 Monogame 开发多点触控应用程序,多个用户可以在更大的多点触控屏幕上同时处理单独的文档/图像/视频,我想知道是否有可能使手势“上下文感知” ",即用两根手指捏住墙一侧的文档不应影响平移墙另一侧的人。

Monogame 的工作方式是,所有输入点都转换为手势,可以使用以下方式读取:

if (TouchPanel.IsGestureAvailable)
{
var gesture = TouchPanel.ReadGesture();
// do stuff
}

有没有办法将手势限制在屏幕上的某个点,还是我需要自己实现?例如,通过查看源代码,似乎 TouchPanelState 类完成了所有工作,但不幸的是它的构造函数是内部的

最佳答案

该功能未内置于 MonoGame 中,因为它不是原始 XNA 的一部分。本质上,您需要多个由其窗口子矩形定义的“逻辑”触摸面板。然而 TouchPanel 是静态的,因此在默认的 XNA 中整个游戏只有一个。

好消息是 MonoGame 可以进行自己的手势识别。所以,代码就在那里,您只需要对 MonoGame 进行一些更改。

例如……
- 使 TouchPanel 成为一个非静态类,可以用给定的子矩形分配。
-添加所有TouchPanel方法的非静态版本。
- 静态方法重定向到 TouchPanel 的单例/实例,保留旧 API。
...现在您可以有选择地分配更多触摸屏,而不是整个屏幕。

注意:这对您没有帮助,但 MonoGame 确实允许您拥有多个操作系统窗口(在 Windows 上仅 afaik),在这种情况下,静态 TouchPanel 是第一个窗口,并且有一个单独的 API 用于访问触摸输入/任何其他窗口的手势。

关于c# - 是否有可能在 Monogame/XNA 中获得 "contextual"手势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com