Xbox one 手柄 api Xinput
相关文档地址:https://docs.microsoft.com/en-us/windows/win32/xinput/getting-started-with-xinput
需要的头文件:Xinput.h
lib 文件:Xinput.lib
最多同时支持 4 个手柄,由于做工等问题,手柄静止时摇杆可能并不在 0 上,两个 trigger 的数据范围是 0~255,两个摇杆是 -32768~32767。
官方文档里还有部分关于 dead zoom 的描述,本例没有考虑
#include <cstdio>
#include <Windows.h>
#include <Xinput.h>using namespace std;int GetControllorNum()
{DWORD dwResult;int num = 0;for (DWORD i = 0; i < XUSER_MAX_COUNT; i++) //up to 4 controllors{XINPUT_STATE state;ZeroMemory(&state, sizeof(XINPUT_STATE));// Simply get the state of the controller from XInput.dwResult = XInputGetState(i, &state);if (dwResult == ERROR_SUCCESS){// Controller is connected printf("one\n");num++;}else{printf("no\n");// Controller is not connected }}return num;
}int main()
{int controllorNum = GetControllorNum();if (controllorNum > 0){XINPUT_STATE state, state2;ZeroMemory(&state, sizeof(XINPUT_STATE));ZeroMemory(&state2, sizeof(XINPUT_STATE));// Simply get the state of the controller from XInput.DWORD dwResult = XInputGetState(0, &state);while (true){dwResult = XInputGetState(0, &state2);if (state2.dwPacketNumber != state.dwPacketNumber){printf("chaned\n");state = state2;state2.Gamepad.bLeftTrigger;if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP){printf("XINPUT_GAMEPAD_DPAD_UP");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN){printf("XINPUT_GAMEPAD_DPAD_DOWN");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT){printf("XINPUT_GAMEPAD_DPAD_LEFT");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT){printf("XINPUT_GAMEPAD_DPAD_RIGHT");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_START){printf("XINPUT_GAMEPAD_START");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_BACK){printf("XINPUT_GAMEPAD_BACK");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB){printf("XINPUT_GAMEPAD_LEFT_THUMB");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB){printf("XINPUT_GAMEPAD_RIGHT_THUMB");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_SHOULDER){printf("XINPUT_GAMEPAD_LEFT_SHOULDER");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_SHOULDER){printf("XINPUT_GAMEPAD_RIGHT_SHOULDER");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_A){printf("XINPUT_GAMEPAD_A");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_B){printf("XINPUT_GAMEPAD_B");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_X){printf("XINPUT_GAMEPAD_X");}if (state.Gamepad.wButtons & XINPUT_GAMEPAD_Y){printf("XINPUT_GAMEPAD_Y");}printf(" pressed\n");XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE;printf("LeftTrigger: %d\n", state.Gamepad.bLeftTrigger);printf("RightTrigger: %d\n", state.Gamepad.bRightTrigger);printf("ThumbLX: %d\n", state.Gamepad.sThumbLX);printf("ThumbLY: %d\n", state.Gamepad.sThumbLY);printf("ThumbRX: %d\n", state.Gamepad.sThumbRX);printf("ThumbRY: %d\n", state.Gamepad.sThumbRY);}else{printf("no change\n");}Sleep(1000);}}else{printf("no controllor connected\n");}return 0;
}
Xbox one 手柄 api Xinput相关推荐
- xbox蓝牙手柄驱动_如何通过蓝牙将Xbox One控制器连接到Windows
xbox蓝牙手柄驱动 The latest version of the Xbox controller-the one included with the Xbox One S and the up ...
- xbox one 手柄在ubuntu下的使用和开发
在ubuntu20.04环境下使用xbox one 手柄和无线适配器 1. 安装dkms 2. 安装xone 2.1 下载源码 2.2 安装xone 2.3 下载固件 3. 手柄测试 4. xbox手 ...
- linux安装xbox无线手柄,ROS配置和使用Xbox One无线手柄
标签: ROS配置和使用Xbox One无线手柄 环境:Ubuntu16.04 + ROS kinetic 安装joy package joy package为通用的Linux操纵杆提供了ROS驱动, ...
- android xbox 手柄,Xbox One手柄将正式适配安卓9.0系统 《堡垒之夜》第一时间支持...
今天(8月27日)来自谷歌官方消息确认安卓9.0系统即Android Pie将对Xbox One手柄提供完整支持,修复此前长期存在的Xbox One手柄按键映射问题,安卓9.0系统将于今年第3季度起陆 ...
- Xbox One手柄 + Xbox Wireless Adapter PC无线适配器驱动安装、配对全流程
以下步骤在Windows 7系统中操作.XBox One手柄+无线适配器并非仅只能在Windows 10中使用. 一点感想:微软的XBoxOne手柄实在是好东西,但产品使用说明与文档实在太垃圾,翻遍官 ...
- xBox one 手柄RB 键 接触不良/反应不灵 抢救方法(软件)
xBox one 手柄RB 键 接触不良/反应不灵 抢救方法(软件) 目录 xBox one 手柄RB 键 接触不良/反应不灵 抢救方法(软件) 文章适用范围 一.步骤 1.下载xbox access ...
- 配置微软Xbox One手柄到ROS实现通讯控制
环境:Ubuntu16.04 + ROS kinetic 安装joy package joy package为通用的Linux操纵杆提供了ROS驱动,它包括了一个joy_node节点,可以让Linux ...
- ESP32 经典蓝牙 连接 Xbox ONE 手柄
文章目录 软件架构 框架/framework: 组件/components: branch Bytheway Code 基于ESPIDF HID例程修改而来,使用经典蓝牙和Xbox ONE 手柄连接并 ...
- Raspberry PI连接XBOX ONE 手柄
Raspberry PI 连接XBOX ONE 手柄 安装XBOX 手柄驱动 禁用(ERTM) bluetoothctl 操作 安装XBOX 手柄驱动 sudo apt install xboxdrv ...
最新文章
- paddleocr ‘bytes‘ object has no attribute ‘shape‘
- Spark- 使用第三方依赖解析IP地址
- bzoj1433: [ZJOI2009]假期的宿舍
- boost::binary_search相关的测试程序
- arcgis python脚本实现从界面选择输入输出_ArcGIS Python脚本使用
- verilog驱动ADC0809包括仿真测试
- 24 | 二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树?
- Linux下查看/管理当前登录用户及用户操作历史记录
- 机器学习实战:PCA降维 样本协方差
- 使用强大的 Mockito 来测试你的代码
- ansible基本模块-shell
- 购物商城Web开发第十天
- asp.net core 支付宝支付( 电脑2.0)
- Restful/Soap风格比较
- java Json转string方法
- 视频教程-PHP开发进阶课程docker入门与进阶-PHP
- 基于微信小程序的图书馆管理系统.rar(论文+源码)
- ShadowGun之Shader分析
- Online Judge系统(简称OJ)
- K3 ERP 系统财务管理 - 账结法、表结法
热门文章
- SSOJ 2316 面积【DFS/Flood Fill】
- 谈一谈|MkDocs介绍及应用
- Navicat mysql 收费_没钱买navicat,就用免费的phpmyadmin吧
- maven 使用tomcat插件启动报错 A child container failed during start
- java基础详细讲解
- [HIHO1560] H国的身份证号码II(dp,计数,矩阵快速幂)
- jsevent(js event对象)
- gps电文解析matlab,MATLAB读取GPS的RINEX格式的导航电文
- 怎么修改FTP服务器绑定的IP地址
- java JDBC使用简易教程