如何让Wii遥控器与Three.js通信?

5
如果我使用Wiican和Wmgui将我的Wii遥控器通过蓝牙连接到Ubuntu笔记本电脑上,那么有什么基本程序可以显示Wii遥控器与浏览器的交互吗?
我已经成功地让Xbox游戏手柄在Chrome上工作了,这并不难。但是用Wii也行吗?首先需要让上下左右和按钮可用,然后可能还需要加速度计输入!
我想我需要结合以下两个内容开始: http://stemkoski.github.io/Three.js/Mesh-Movement.html -运动 以及 https://github.com/s-haha-n/GameTPS/blob/master/sample.html -我的样例Xbox游戏手柄输出页面。
对于这样的事情,我应该从哪里开始?Gamepad.js是否可以直接使用Wii遥控器?

2
Wiimote + Three.js?(ง ͠° ͟ل͜ ͡°)ง - Derek 朕會功夫
我不明白... 你喜欢这个吗?还是不喜欢?哈哈 - madam_madman
我的意思是这是一个非常棒的想法,但我无法确定在JavaScript中是否可行。本地的Gamepad API可以处理受到客户端系统支持的游戏手柄,但如果系统不支持它,你真的无能为力。毕竟,JavaScript被设计成在沙盒中运行,不能与硬件交互。 - Derek 朕會功夫
Wiimote需要蓝牙。为什么不使用手机?它们具有相同(甚至更多)的功能,并且随处可用。也许可以使用类似于手机应用程序<-->WiFi<-->计算机<-->浏览器的方式?adhoc连接是否可行? - Farzad
现在我正在梦想着一个在浏览器中完成的赛车游戏,用户可以像使用游戏手柄一样用手机来玩。 - Farzad
1个回答

3
如果您可以使用本地服务器,您可以:
  • 捕获来自nodejs模块(如https://github.com/bramp/nodewii)的事件
  • 将这些事件通过socket.io转发到浏览器(nodewii似乎也这样做,请参考此处
  • 在客户端上使用这些事件来为您的three.js场景添加动画效果。类似于:
socket.on('button', function(data) {
  mesh.material.opacity = 1 - mesh.material.opacity;
})

然而,对于事件的平滑度我不太确定,但是尝试起来一定很有趣。


谢谢!但是我看到nodewii只兼容Linux操作系统...例如我们在Windows上怎么办呢? - TOPKAT
1
nodewii和其他基于libcwiid的库在Windows上似乎行不通。 我会尝试使用另一个库来通过Websockets生成事件。 也许像这里https://touchmote.codeplex.com这样的东西? - vincent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接