直接上代码。

<template>
<div class="home">
</div>
</template> <script>
export default {
name: "Home",
data() {
return {
interval: null,//时间间隔
};
},
created() {
var _this = this;
// 监听游戏手柄
window.addEventListener("gamepadconnected", function(e) {
var gp = navigator.getGamepads()[e.gamepad.index];
console.log(gp);
_this.startgamepad(); // 启动手柄
});
// 监听游戏手柄拔出
window.addEventListener("gamepaddisconnected", function(e) {
clearInterval(_this.interval); // 停止获取手柄数据
});
},
methods: {
// 启动手柄
startgamepad() {
var _this = this;
// 每200ms 获取一次手柄数据,查看是否按下手柄按键
this.interval = setInterval(function() {
var gamepad = navigator.getGamepads()[0];
_this.remoteSensing(gamepad.axes);
_this.pressKey(gamepad.buttons);
}, 200);
},
// 手柄遥感
remoteSensing(arr) {
console.log(arr);
// 下面是个人测试的:
// arr[0] -1 ~ 1 : 左手边 左 ~ 右
// arr[1] -1 ~ 1 : 左手边 上 ~ 下
// arr[2] -1 ~ 1 : 右手边 左 ~ 右
// arr[3] -1 ~ 1 : 右手边 上 ~ 下
},
// 手柄按键
pressKey(arr) {
// console.log(arr);
for (let i = 0; i < arr.length; i++) {
if (arr[i].value == 1) {
console.log(i);
// 根据个人情况判断;不同手柄值不同。
if (i == 0) {
console.log("A");
}
if (i == 1) {
console.log("B");
}
if (i == 2) {
console.log("X");
}
if (i == 3) {
console.log("Y");
} if (i == 4) {
console.log("左手1");
}
if (i == 5) {
console.log("右手1");
}
if (i == 6) {
console.log("左手2");
}
if (i == 7) {
console.log("右手2");
} if (i == 8) {
console.log("BACK");
}
if (i == 9) {
console.log("START");
} if (i == 10) {
console.log("左遥感按下");
}
if (i == 11) {
console.log("右遥感按下");
} if (i == 12) {
console.log("上");
}
if (i == 13) {
console.log("下");
}
if (i == 14) {
console.log("左");
}
if (i == 15) {
console.log("右");
}
}
}
},
}
};
</script> <style lang="scss" scoped>
.home {
position: fixed;
width: 100%;
height: 100%;
}
</style>

vue 游戏手柄使用的更多相关文章

  1. Vue.js 和 MVVM 小细节

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  2. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  3. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  4. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  5. Vue + Webpack + Vue-loader 系列教程(2)相关配置篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ 使用预处理器 在 Webpack 中,所有的预处理器需要和一个相应的加载器一同使用.vue- ...

  6. Vue + Webpack + Vue-loader 系列教程(1)功能介绍篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ Vue-loader 是什么? vue-loader 是一个加载器,能把如下格式的 Vue ...

  7. 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库

    应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...

  8. Vue.js 2.0 和 React、Augular等其他框架的全方位对比

    引言 这个页面无疑是最难编写的,但也是非常重要的.或许你遇到了一些问题并且先前用其他的框架解决了.来这里的目的是看看Vue是否有更好的解决方案.那么你就来对了. 客观来说,作为核心团队成员,显然我们会 ...

  9. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

随机推荐

  1. Java数据结构——2-3树

    定义2-3树是平衡的3路查找树,其中2(2-node)是指拥有两个分支的节点,3(3-node)是指拥有三个分支的节点.B-树是一种平衡的多路查找树,2-3树属于b-树,其也同样具有B-树的性质,如m ...

  2. Cassandra社区是怎么测试4.0的

    点击查看活动录像,获取更多技术细节. Cassandra社区是怎么测试4.0的 Cassandra 4.0的目标就是成为史上最稳定的版本.为了达到这个目的,我们需要用很多方法和工具进行测试.我今天主要 ...

  3. SCE信号期末复习省流小助手(懒人版)

    XDU-SCE网信院信号期末复习省流小助手(懒人版) 本人根据西安电子科技大学网络与信息安全18年期末考试整理的考点和题型 以下题型代表了信号与系统课程的 精髓 若能掌握以下知识点和题型,80分稳有: ...

  4. Qt QString转char[]数组

    Qt QString转char[]数组 QString s1="1234456";char str[20]={0};strcpy(str,s1.toStdString().c_st ...

  5. 项目介入EF Core

    目前.Net主流的ORM有SqlSugar.Entity Framework.Dapper,其它的我就不列举了.其实和Java那边ibatis相比,他们都比较轻量.之前用ibatis开发,真的很麻烦, ...

  6. Spark Java创建DataFrame

    以前用Python和Scala操作Spark的时候比较多,毕竟Python和Scala代码写起来要简洁很多. 今天一起来看看Java版本怎么创建DataFrame,代码写起来其实差不多,毕竟公用同一套 ...

  7. php高效读取和写入

    /** * 删除非空目录里面所有文件和子目录 * @param string $dir * @return boolean */ function fn_rmdir($dir) { //先删除目录下的 ...

  8. android开发之dip,dp与px像素之间的转换工具,可能用的不多,但是有总比没有好吧。

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985,转载请说明出处. 下面是介绍: 免积分下载地址:http://download.csdn.net/de ...

  9. python3笔记-函数

    创建函数 def 函数名(参数列表): 函数语句 函数的命名规则:一个单词直接小写 # 多个单词,每个单词小写,以下划线分隔 文档化说明 函数首行加 '' 或 ''' ''' 使用函数名.__doc_ ...

  10. Activiti7 网关(排他网关)

    什么是排他网关? 排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用于在流程中实现决策,当流程执行到这个网关,所有分支都会判断条件是否为true,如果为true则执行该分支 注意:排他网关 ...