小案例系列:小米蓝牙手柄玩PC上React写的网页游戏
环境:
Windows11
Nodejs:16.10.0
Python:3.8.1
小米手柄:2015年随天猫魔盒一起购入;已经几年没碰过了
家中有娃到了玩游戏的年龄,在同学家玩过手柄以后,手机都不香了。每天摸着7,8年有多的小米手柄,眼神中充满渴望。好吧,把它跑起来。都想依靠蜂巢指纹浏览器(NestBrowser)整合成一个游戏小程序。
需求:
1、黑白或者尽量简单的游戏,坦克类是首选
2、要在电视机上玩的
开始实现之旅
一:开始第一步,寻找游戏
很快就锁定了经典游戏:
源码地址:https://github.com/shinima/battle-city
LIVE地址:Battle City 浏览器打开这个地址就可以直接愉快的玩耍了
React开发的web小游戏,效果挺好,有些小bug,控制使用鼠标键盘。
二:开始第二步,让小米手柄能玩这个游戏
a、小米的蓝牙功能是正常的,之前用这个连天猫魔盒的时候很丝滑顺畅。所以先尝试连上pc。
开机后发现没反应,百度才找到第一个要点,之前都懵了,几年没碰过:
i、长按手柄上的“X”+“MI”打开电源,直到手柄最下方指示灯快闪就可以松开按键,手柄进入匹配模式
ii、在windows11 pc中的“设置”→“蓝牙和其他设备”→”添加设备”,搜索并匹配小米手柄,到设备中显示“已经配对”
iii、然后就没有然后了,卡死了,手柄操作没有任何反应,开始进入抓狂状态。
下面进入吐槽模式,大家可以忽略不看:
1、想用Nodejs接入并控制小米手柄,再把手柄信息转成键盘消息传给浏览器中的游戏
a、https://github.com/node-hid/node-hid
b、https://github.com/noble/node-bluetooth-hci-socket
操作一番无果,还重装了vs2022到vs2017,python从3.9降到了2.7,为了编译这些库
2、想用Electron直接把游戏打包进去并处理手柄的蓝牙信息
a、https://github.com/bendman/electron-bluetooth-example
b、https://github.com/aalhaimi/electron-web-bluetooth
翻Electron的文档中有bluetooth的处理,都无果
3、突然想起来蓝牙手柄只是匹配了,并没有完成连接,怎么可能会被找到。峰回路转 开始处理怎么连接小米手柄。
a、终于找到这份视频:https://www.bilibili.com/video/av926084577/ 但是,下载并安装以后,直接报错。mi.exe运行就抛出异常
b、开始找c,c++的蓝牙驱动和连接的项目。还是不甘心这么去折腾,这东西肯定有人 搞定过的
蜂巢指纹浏览器(NestBrowser)带来了峰回路转,有效解决方案:
链接: 百度网盘 请输入提取码
提取码: k1fc
安装这三个程序,其中两个是驱动,一个是mi是用来把小米手柄映射成xbox手柄,都是开源项目,所以有心有力的人可以各自发挥整合。
ViGEmBus 源码:GitHub - ViGEm/ViGEmBus: Windows kernel-mode driver emulating well-known USB game controllers.
HidHide 源码:https://github.com/ViGEm/HidHide
mi-360 源码:https://github.com/dancol90/mi-360
连接成功以后,这些属性都正常:
b、小米手柄成功连接pc以后,怎么把手柄消息映射成键盘鼠标消息呢
i、使用joytokey ,找这个东西超烦躁,一堆版本有问题的
连接:百度网盘 请输入提取码
提取码:0ks9
ii、使用闪优手柄,这个在腾讯就可以下载到,而且免费
也可以搜索得到
iii、python的这个测试也帮了大忙,在苦苦寻找a,b的过程中,它第一个跑起来并正常响应了手柄的输出,点100个赞。
源码:https://github.com/Zuzu-Typ/XInput-Python
这个也记录一下:Map Bluetooth Controller using Python - Raspberry Valley
到这里终于用手柄可以控制浏览器的的游戏正常玩起来了。消耗了一天精力和时间,之前想整合进去electron和nodejs的冲动也消失了,这样不用一句代码跑起来也不错。
蜂巢指纹浏览器(NestBrowser)不需要一句代码就可以跑无限定制浏览器环境。文章来源:https://www.toymoban.com/news/detail-535459.html
三:开始第三步,实际跑起来
把笔记本用hdmi连上电视,整个就跑起来很顺畅了。文章来源地址https://www.toymoban.com/news/detail-535459.html
到了这里,关于复活小米蓝牙手柄,让手柄控制电脑PC玩React写的网页游戏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!