Kinect for Windows 刚刚于2月1日发布.
有没有什么好方法可以让它与HTML5游戏一起使用?甚至可能以某种方式使用即将推出的GamePad API ......?在这里寻找想法,特别是对于浏览网页的用户而言,只需要最少的额外安装费用.
通过在浏览器中使用HTML5 Gamepad API,我能够正确地从4个控制器获得输入.
https://www.w3.org/TR/gamepad/
我遇到的问题是从8个控制器获取输入.这些都是Xbox 360控制器,我知道XInput API存在遗留限制.但是看看上面的HTML5 API文档,我看不到任何提及限制或API实现方式的内容.
navigator.getGamepads(); 似乎在Chrome和Edge中返回了4个未定义点的数组,而FireFox中的未指定数组似乎仍然达到了4的限制.
您可以看到Windows 10验证我在"设备"面板中连接了8个控制器,并且所有控制器在浏览器中最多可单独操作4个游戏手柄.所以我在质疑游戏手柄API为何限制我 - 这是游戏手柄API或XInput的设计吗?
我正在尝试创建一个使用Nintendo Switch Joy-Cons和运动控件的HTML5 JavaScript游戏。问题是,当Joy-Cons连接到PC时,我不知道如何检测它们。
我已经使用Gamepad API通过Xbox控制器,PS4和Joy Con 实现了按钮输入,但是使用Joy-Con运动控件是否可以实现?
如果您想看的话,这是Gamepad API的代码(同样,我的目标是Joy-Con 运动控件):
var haveEvents = 'ongamepadconnected' in window;
var controllers = {};
function connecthandler(e) {
addgamepad(e.gamepad);
}
function addgamepad(gamepad) {
controllers[gamepad.index] = gamepad;
var d = document.createElement("div");
d.setAttribute("id", "controller" + gamepad.index);
var t = document.createElement("h1");
t.appendChild(document.createTextNode("gamepad: " + gamepad.id));
d.appendChild(t);
var b = document.createElement("div");
b.className = "buttons";
for (var i = 0; i < gamepad.buttons.length; i++) {
var e = document.createElement("span");
e.className = "button";
//e.id = "b" + …Run Code Online (Sandbox Code Playgroud) 我知道最新版本的Android(Honeycomb和ICS)支持游戏杆和游戏手柄.Guitar Hero(和Garage Band)控制器本质上是USB HID设备,对吗?
所以我的问题:是否可以从Android设备上的Guitar Hero(或Rock Band)控制器接收数据(按钮点击)?Android会将其理解为游戏手柄输入吗?
PS我需要的是在我的游戏中检测塑料吉他音品上那五个按钮的输入.
我想为我的 Web 应用程序提供游戏手柄支持。这个应用程序是一个套接字客户端(使用 socket.io),它也应该能够处理游戏手柄输入。
因此,当通过 USB 或蓝牙插入游戏手柄时,我想触发一个事件,输入也是如此。我希望Gamepad API能够解决它。不幸的是它没有。
我创建了这个例子
$(document).ready(() => {
window.addEventListener("gamepadconnected", e => {
console.log("connected gamepad");
});
window.addEventListener("gamepaddisconnected", e => {
console.log("disconnected gamepad");
});
});Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>Run Code Online (Sandbox Code Playgroud)
我插入了我的 XBox360 控制器,但不幸的是没有触发任何事件。我错过了什么吗?
我在 Manjaro Linux(64 位)上使用 Chrome 版本 76.0.3809.132(官方版本)
navigator.getGamepads()在控制台中运行时,我得到了这个结果GamepadList {0: null, 1: null, 2: null, 3: null, length: 4}
顺便说一句。当然,我的控制器正在处理其他应用程序,例如游戏:)
更新
我安装了 Firefox 68.0.1(64 位)并且它工作了……但是 Chromium 似乎在挣扎
我正在使用Chrome(版本19.0.1084.46).我在chrome:// flags中启用了Gamepad API.我插入了一些游戏手柄,但navigator.webkitGamepads总是一个长度为4的数组,只包含未定义的.
navigator.webkitGamepads
GamepadList
0: undefined
1: undefined
2: undefined
3: undefined
length: 4
__proto__: GamepadList
Run Code Online (Sandbox Code Playgroud)
使用游戏手柄测试时我需要做什么?如果重要的话,我在Ubuntu Linux上.
我有一个可以连接游戏手柄的Android设备(它是一个完全标准的XBox 360控制器,但我也需要支持其他品种).游戏手柄显示为带有一些模拟轴和一些按钮的InputDevice.
我需要能够查询Android以找出游戏手柄支持的按钮.有谁知道如何做到这一点?
我知道系统有这个信息,因为如果我编写一个打开的命令行应用程序/dev/input/event...并使用EVIOCGBITioctl 查询按钮,我会从内核中获得一个很好的支持按钮列表.但我无法从Android应用程序执行此操作,因为我无权直接访问输入设备.
看起来应该可以获取InputDevice的KeyCharacterMap对象并进行查询; 但看起来Android已将默认的QWERTY键盘键映射附加到游戏手柄,而不是构建一个实际匹配游戏手柄支持的键盘.这将很高兴地告诉我游戏手柄有一个Q键,它没有,并且它没有BUTTON_X键,它所做的,并且我正在接收关键事件.所以这没有帮助.
有没有办法做到这一点?
我已经阅读了MDN游戏手柄API页面和W3C游戏手柄API页面,我没有发现游戏手柄任何隆隆声功能.我发现有一个页面引用了FireFox中的一个Android手机的隆隆支持,但只有一个评论谈到了游戏手柄的支持.该评论有2个链接:一个死博客和一个Bugzilla线程.Bugzilla线程从未说过添加了此功能.我确实找到了另一个直接引用游戏手柄隆隆声控制的页面,但它是在帖子的"未来"部分下.
我给出的所有这些链接的另一个问题是它们都是在2010-2013之间,没什么新鲜的.
在目前的网络浏览器状态下,游戏手柄是否有隆隆声功能?还有一家公司直接表示他们正在研究它吗?
我想编写一些基于 Puppeteer 的测试来测试一些使用Gamepad API的逻辑,但我在Puppeteer 文档中找不到任何解释如何模拟游戏手柄以及如何将按钮按下发送到浏览器。
正确的做法是什么?