【问题标题】:Using iPhone as control device (game controller type) in Windows在 Windows 中使用 iPhone 作为控制设备(游戏控制器类型)
【发布时间】:2011-05-21 03:45:44
【问题描述】:

有没有一种方法可以将 iPhone 用作计算机的接口设备而无需编写驱动程序?作为一个低于标准的游戏控制器的拥有者,并意识到尝试推出自己的游戏控制器既便宜又好体验,我不知道在 PC 端从哪里开始。我能够在 iPhone 上处理加速度计和触摸事件并通过网络发送它们,但是我应该从 Windows 端的哪里开始呢?我不想像司机那样低水平,但我希望能够将加速度计用作模拟输入设备,并将屏幕上的按钮用作常规按钮。我该怎么办?如果我必须编写一个驱动程序,什么是一个好的参考/代码示例?

【问题讨论】:

    标签: iphone windows input driver


    【解决方案1】:

    只要您在PC上处理iPhone发送的数据,您就不需要编写驱动程序。至于在 PC 端从哪里开始,您需要做的就是创建一个小程序来侦听套接字上的数据。您可以使用任何语言 C、C++、Java 等编写该程序。我曾在您提到的类似应用程序上工作过。在 PC 上,我使用 Java 和 Visual Studio IDE。

    【讨论】:

    • 谢谢。两个基本问题——套接字是网络端口的同义词(如 192.168.0.105:2345),还是不同的机制?另外,我如何将数据转换为输入流,就像我在游戏中使用的那样?我知道我心目中的游戏支持通用控制器……我如何将 UIAcceleration* 对象映射到控制器的摇杆或触发器,或将 UITouch* 映射到按钮按下?
    • 好吧,套接字确实使用 IP 和端口号来发送或接收数据。至于如何在 PC 和 iPhone 之间传递数据,这将取决于您拥有的数据。我开发的应用程序相当简单,它是一个无线鼠标。您在 iPhone 上移动手指,PC 上的鼠标也会移动。我将数据作为数组发送,因为我必须简单地传递 iPhone 的位移值并将其发送到 PC。
    • 我举个例子来说明如何发送数据。在数组中,将有标志表示它是什么事件以及值是什么。如果按下按钮,您将发送的数组的第一个元素将为 1。如果是拖动,则数组中的第二个元素将为 1,而数组的其余部分将包含表示拖动量的值。如果 iPhone 向左倾斜,则数组中的第三个元素将为 1,其他元素(第一个和第二个元素)将为 0。您必须检查标志并相应地在 PC 上处理事件。
    • 对于更复杂的数据,数组可能不可行,但我不知道如何传递数据的整个结构(如 NSDictionary)并在 PC 端进行处理。
    • 你可以处理鼠标和键盘事件。可以以编程方式模拟鼠标和键盘输入。查看此链接msdn.microsoft.com/en-us/library/ms171548.aspx。如果您的游戏正在运行,键盘输入将反映在您的游戏中。基本上你可以为你的电脑创建一个完整的无线遥控器。
    【解决方案2】:

    我相信这类似于 Splashtop 的 Remote 所做的 (http://www.splashtop.com/remote/touchpad)。他们似乎使用网络连接来实现这一目标。

    还有手柄,同样的概念 (http://getjoypad.com/)。

    【讨论】:

    • Remote 无法处理游戏控制器所需的持续轮询/实时更新。 JoyPad 看起来很有希望,但我想在其中使用它的每个应用程序都必须使用 JoyPad SDK,而这真的不会发生。
    • 我并不是说您不应该创建自己的解决方案,只是提供这些作为如何完成的示例。
    • 啊。谢谢。我会创建自己的界面;很高兴看到这些解决方案背后的代码。
    猜你喜欢
    • 1970-01-01
    • 2015-12-07
    • 2014-04-16
    • 1970-01-01
    • 2013-05-14
    • 2011-09-02
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多