【问题标题】:Any Silverlight-based Thumbstick controls out there?有任何基于 Silverlight 的 Thumbstick 控件吗?
【发布时间】:2011-11-01 23:07:08
【问题描述】:

我正在尝试实现一个简单的游戏 - 我编写了一个拨号控件,但在 Windows Phone 的 Silverlight 中编写屏幕拇指摇杆时遇到了问题 - 这将是一个大圆圈 - 比如说 150 像素宽和 25 像素的圆圈按住时围绕中心移动,就像一个真正的拇指杆 - 就像 Xbox 360 控制器的拇指杆。
我发现创建这个有点棘手 - 如果有任何示例,例如操纵杆,例如我可以缩小吗?多年来一直在尝试创建一些东西,但似乎无法弄清楚 - 中心圆是从图像加载的,而较大的也是从图像加载的,因此可以自定义 - 让两者相互居中是容易的部分!

【问题讨论】:

  • 使用 XNA for wp7 可能会更容易完成。您是否已经考虑过使用 XNA 来实现它? create.msdn.com/en-US/sample/touchthumbsticks
  • XNA 不是一个选项,它必须是 Silverlight 应用程序 - 不能将 XNA 用作 7.0 应用程序 - 我找到了几个 XNA 示例 - 其中一些数学可能适用于不过我 - 大部分逻辑都是 C# - 加上我实际上尝试了这个例子,根本不是它所说的 - 你可以在任何地方点击,必须是​​固定的拇指棒,就像一个真正的。
  • “不能将 XNA 用作 7.0 应用程序”是什么意思?当然,您可以调整样本以仅识别指定矩形中的点击。
  • 我想我可以 - 不太确定如何完成它,我的评论是如果我正在创建一个 7.1 应用程序,我可以按原样使用它,因为你可以混合 XNA 和 Silverlight - 这将使更好地使用你的例子!
  • 很简单。只需在拇指杆的位置创建一个具有您想要的大小的新 Rectangle 并使用 .Contains(...) 重载来检查水龙头的位置是否在其中,然后采取相应的行动(更新摇杆,或忽略输入)。完毕! msdn.microsoft.com/de-de/library/…

标签: c# silverlight xaml windows-phone-7 controls


【解决方案1】:

如前所述,我建议使用 XNA 来执行此操作,因为它更容易执行。使用 Mango,您可以将 XNA 和 Silverlight 结合起来,因此也可以满足您对一些 Silverlight 的需求。

看这个例子: http://create.msdn.com/en-US/sample/touchthumbsticks

它展示了如何轻松创建拇指杆控件。要限制您可以触摸的区域,只需在拇指杆的位置创建一个具有您想要的大小的新 Rectangle 并使用 .Contains(...) 重载来检查水龙头的位置是否在其中,然后执行相应地(更新棒,或忽略输入)。

查看 .Contains(...) 函数及其重载: http://msdn.microsoft.com/de-de/library/microsoft.xna.framework.rectangle.contains.aspx

我了解到,许多程序员倾向于坚持使用 Silverlight,因为他们认为 XNA 是某种圣杯并且编程复杂。它不是。它只需要一点点习惯,但您一定会喜欢 XNA 启蒙之旅。我可以说,我做到了:) 这很有趣!只要相信互联网上的陌生人!

如果您需要坚持使用 Silverlight 和 Pre-Mango,我担心我无法为您提供任何有价值的东西,并且我担心您在尝试重新创建 XNA 已经免费为程序员提供的相同功能时会感到痛苦。

【讨论】:

  • 我正在向 Silverlight 应用程序添加功能,这是一个要求 - 如果我可以在 XNA 中做到这一点,我会 - 但是这个示例可能有助于将其移植到 Silverlight,但通常我会没事的使用正确的工具完成正确的工作
猜你喜欢
  • 2011-01-08
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多