Android应用兼容游戏手柄的分析(一)
2014-04-04 14:17
351 查看
1.系统分析:Android系统本身支持实体按键,android.view.KeyEvent的中有 KEYCODE_DPAD_DOWN KEYCODE_DPAD_LEFT KEYCODE_DPAD_RIGHT KEYCODE_DPAD_UP 四个方向键和KEYCODE_DPAD_CENTER 一个确定键,和KEYCODE_BACK一个后退键。
2.应用按键分析:对于一个应用来说只需要4个方向键,1个确定键,1个后退键,就足够操作了,问了用户交互好,可能还用到“菜单”键,也就是说,整一个手柄上,我们只需要把需要相应的按键的键值转换成这7个按键的键值就可以了。
3.手柄按键分析:对手柄来说,不同的手柄都可以有不同数量的按键,通过他们的SDK或者开发包,我们可以拿到相应的键值,对于手柄,肯定会有A B X Y 四个键和至少一个“方向盘”(不论这个方向盘是方向按键类型还是摇杆类型),所以,开发中只需要把“方向盘”的按钮相应事件转发称Android的DPad按键就可以了。一般把A键作为确定键,把B键作为后退键。
4.摇杆数据分析:
对于手柄(Moga Pro)的摇杆而言,它所发送的按钮执行是可以去到的四个值,分别是 X Y Z RX ,X、Y两个值是左边摇杆的移动属性,Z、RX则是右边摇杆的移动属性,属性是个模拟量,从-1到1之间。手柄移动到一个方向再回来时还会再次触发一次位置在(0,0)的监听。手柄一直在一个方向上不动,不会连续触发位移监听。
手柄的摇杆的数轴Y轴是反方向的。分析如下图:
![](http://images.cnitblog.com/i/551418/201404/041415346718973.png)
![](file:///C:/Users/HOUNYC~1/AppData/Local/Temp/enhtmlclip/无标题.png)
因为手柄的摇杆是个模拟量,是从-1到1之间的float类型,任何移动都会触发摇杆移动事件,所以把整个数轴划分成如上图的四个区域。这个可以实现即使用户向右上方一定角度移动摇杆,也能相应成方向键。
================================================
对于连续发键的问题下次再整理
2.应用按键分析:对于一个应用来说只需要4个方向键,1个确定键,1个后退键,就足够操作了,问了用户交互好,可能还用到“菜单”键,也就是说,整一个手柄上,我们只需要把需要相应的按键的键值转换成这7个按键的键值就可以了。
3.手柄按键分析:对手柄来说,不同的手柄都可以有不同数量的按键,通过他们的SDK或者开发包,我们可以拿到相应的键值,对于手柄,肯定会有A B X Y 四个键和至少一个“方向盘”(不论这个方向盘是方向按键类型还是摇杆类型),所以,开发中只需要把“方向盘”的按钮相应事件转发称Android的DPad按键就可以了。一般把A键作为确定键,把B键作为后退键。
4.摇杆数据分析:
对于手柄(Moga Pro)的摇杆而言,它所发送的按钮执行是可以去到的四个值,分别是 X Y Z RX ,X、Y两个值是左边摇杆的移动属性,Z、RX则是右边摇杆的移动属性,属性是个模拟量,从-1到1之间。手柄移动到一个方向再回来时还会再次触发一次位置在(0,0)的监听。手柄一直在一个方向上不动,不会连续触发位移监听。
手柄的摇杆的数轴Y轴是反方向的。分析如下图:
![](http://images.cnitblog.com/i/551418/201404/041415346718973.png)
![](file:///C:/Users/HOUNYC~1/AppData/Local/Temp/enhtmlclip/无标题.png)
因为手柄的摇杆是个模拟量,是从-1到1之间的float类型,任何移动都会触发摇杆移动事件,所以把整个数轴划分成如上图的四个区域。这个可以实现即使用户向右上方一定角度移动摇杆,也能相应成方向键。
================================================
对于连续发键的问题下次再整理
相关文章推荐
- [置顶] android ANR问题分析
- Android基础之R文件丢失报错
- Android应用自动更新、下载、安装
- Android界面从里至外浅析
- Android SDK的安装教程
- Android -- 图片处理, 画画板,缩放,旋转,平移,镜面,倒影,图片合成,颜色处理
- android程序中的AndroidManifest.xml中的uses-feature详解
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失,并解决activity跳转的时候出现短暂的黑屏
- android系统应用在未root的情况下启动root权限命令方法
- 关于mono for android 滑动目录控件的使用 SlidingMenuSharp 控件
- Android 客户端与服务器交互方式
- Android 4.4 Kitkat Phone工作流程浅析(五)__MT(来电)流程分析
- Android之-EditText不弹出输入法设置
- Android开发规范——命名
- android 色值(全)
- android 内存溢出(oom)产生原因和内存优化
- android 修改桌面图标大小
- android 返回键 操作
- Android 手机上获取物理唯一标识码
- android开源项目---View篇