【问题标题】:Handle only one FreeDrag gesture Monogame XNA仅处理一个 FreeDrag 手势 Monogame XNA
【发布时间】:2013-12-13 06:26:14
【问题描述】:

我遇到了一个小问题。我在 Windows 8 上运行了一个游戏,但其中有一个小错误。我们通过 FreeDrag 事件拖动玩家,但问题是当您拖动小鸟并将手指放在屏幕的另一侧并开始拖动时,您将启动另一个 FreeDrag 事件并影响小鸟的移动。

所以我的问题是我可以只处理 1 个 FreeDrag 而不是两个都处理吗?有人问了一些比较individually handle gesture's 的问题,但没有得到答案。

提前致谢。

【问题讨论】:

  • 为什么要把另一根手指放在屏幕上?
  • 你不会真的故意这样做,但如果你不小心用另一根手指触摸屏幕或者你自己敲击屏幕,玩家会做出意想不到的动作。该游戏是一种逃避游戏,并且通过用第二根手指触摸屏幕,您可以提升自己并获得双倍速度,从而通过正确了解和执行它来获得不公平的优势。除此之外,对于进一步开发(支持 2 名玩家)以及我们未来可能制作的任何其他游戏来说,了解这些内容也很方便:)
  • 我认为你不能处理这个问题,FreeDrag 不是 XNA 中的多点触控手势,这意味着如果你用另一根手指触摸屏幕,就会开始另一个拖动手势。
  • 所以我需要通过保存最后一个位置然后获取新位置并提取增量以检查它是否是正在进行的拖动然后更新我的位置(如果这甚至有效)来解决这个特别的问题?
  • 这看起来很复杂。我的建议是避免使用 FreeDrag,而是使用 TouchLocation 来移动你的小鸟。

标签: c# xna gesture monogame


【解决方案1】:

我认为您无法处理,FreeDrag 不是 XNA 中的多点触控手势,这意味着如果您用另一根手指触摸屏幕,您将开始另一个拖动手势。
我的建议是避免使用FreeDrag 并使用TouchLocation 来移动你的鸟。处理起来更容易,结合TouchCollection检测多点触控手势。

【讨论】:

  • 嘿,我已将您的建议放入我的游戏中,但它产生了一个新错误。当我现在回到主菜单时,我混合使用了手势和 touchcollection,然后我的游戏冻结在手势上:/ 我正在写一个更大的帖子/问题,并将在完成后放置一个链接 >Here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多