哪些游戏手柄支持编程开发???

HopeInHeart 2013-05-08 01:57:27
最近项目需要C#对游戏手柄的编程开发,对游戏手柄进行操作,大概有两种方式:采用系统API或者使用DirectInput操作游戏手柄设备。
我现在的问题是:哪些游戏手柄支持系统API或者使用DirectInput进行编程开发呢??? 是所有的游戏手柄都支持还是需要什么标准(或者什么品牌型号的游戏手柄)才支持呢?若果是特定的才支持,请指定的告诉下,谢谢!
...全文
247 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
HopeInHeart 2015-07-06
  • 打赏
  • 举报
回复
过去很长时间了,结贴。 最终选用 的是赛钛客FLY飞行摇杆,该摇杆配套有软件可以设置摇杆的前后左右及每个按键对应键盘上的操作(单个或组合按键)
HopeInHeart 2013-05-15
  • 打赏
  • 举报
回复
引用 3 楼 huainian23 的回复:
这个可以有,当时玩游戏的时候下载了一个手柄助手,可以模拟键盘上的键。 我后来的手柄是X宝淘的,没发现不支持插件的现象,应该是都支持的。
你知道飞行摇杆么,飞行摇杆的开发 和 游戏手柄是相同的api么?飞行摇杆介绍见网址:http://blog.sina.com.cn/s/blog_4529cae90100h683.html
HopeInHeart 2013-05-08
  • 打赏
  • 举报
回复
引用 3 楼 huainian23 的回复:
这个可以有,当时玩游戏的时候下载了一个手柄助手,可以模拟键盘上的键。 我后来的手柄是X宝淘的,没发现不支持插件的现象,应该是都支持的。
好的 谢谢 希望是都支持的 呵呵
Trust-Me 2013-05-08
  • 打赏
  • 举报
回复
这个可以有,当时玩游戏的时候下载了一个手柄助手,可以模拟键盘上的键。 我后来的手柄是X宝淘的,没发现不支持插件的现象,应该是都支持的。
HopeInHeart 2013-05-08
  • 打赏
  • 举报
回复
引用 1 楼 huainian23 的回复:
我看标题以为是楼主要用游戏手柄代替键盘做开发呢
本来就是啊,你以为是啥呢,只是我上面描述的只是采用的技术,没说具体做什么罢了 我参考的技术文章网址:http://www.cnblogs.com/kingthy/archive/2009/03/25/1421838.html 看看就明白了 我不明白的地方是:是不是所有的游戏手柄都支持系统API对其编程?
Trust-Me 2013-05-08
  • 打赏
  • 举报
回复
我看标题以为是楼主要用游戏手柄代替键盘做开发呢
格斗类游戏的键盘处理   格斗类游戏对于键盘的要求极高,因此,键盘处理就成了格斗类游戏的一个极其重要的部分,现在就让我们谈谈电脑上格斗类游戏键盘处理的实现。   在电脑上使用格斗游戏不同于家用机和街机,家用机和街机使用的是操作手柄,操作手柄的按键使用的是电压叠加的原理,因此可以支持多个按键同时按下。而电脑上却不同,电脑上使用的是键盘,键盘采用的扫描码的形式,如果不使用组合键(Ctrl、Alt和Shift这些),那么如果同时按下键盘的AB两键,得到的值有两种情况:AB或BA。而且,如果先按下A键不放,再按下B键不放,得到的将是ABBBBB...的序列而不是需要的ABABAB...的序列。再有一种,加速的按键,如果连按两下A,再按住A不放,人物将由走的状态变为跑的状态。还有,电脑上的键盘有缓冲区。如果缓冲区已满,将无法接受到任何按键。   说了这么一大堆问题,也该到解决问题的时候了。先解决多键同时按下的问题,按键最多只有两键同时按下吧(比如按上+前+手,向前跳)。那么我们就将键盘缓冲区设置为两个单元,每一次从键盘缓冲区取两个值,再清空缓冲区,准备下一轮读取。如果从键盘缓冲区中取一次就空了,那么该次取值结束。可以用下图表示:
PC电脑智能游戏手柄设计背景及概述: 在智能手机随处可见的今天,各式各样的APP层出不穷。由于手机有重力感应功能,手机游戏自然也不会错过这个,相比八、九十年代的小游戏,如今的游戏不再只是用眼去看,用手指操作,更多的是让玩家用身体去体验游戏。赛车类、飞机类、游艇类等游戏,通过控制手机的姿态就能控制游戏对象,这种体验使的很多人着迷。 但是,在游戏体验得到大幅度提升的同时,也存在一些问题。重力传感器与手机是一体的,手机屏幕也是手机的一部分,当敌机快速朝我方冲来时,我们会最大限度的倾斜手机来躲避敌机。但是此时由于手机倾斜,我们要么看不见屏幕内容,要么头也随手机倾斜。 为了解决这个问题,我想把传感器与屏幕分离出来,即,使控制与显示独立。正值“深联华杯单片机应用设计大赛”如火如荼的进行,我就借此机会将我的计划实现。制作一款具有重力感应的游戏手柄。 虽然带重力感应的游戏手柄在市场上也有,但是上百元的价格并不是人人都会购买的。深联华SLH89F5162单片机是增强型51单片机,兼容传统的51单片机,又添加了许多实用的周边模块,使得单片机真正成为“单片微机”。同时因其低廉的价格,使得制作出来的重力游戏手柄的成本也极低,属于平民级的消费电子,市场竞争力不言而喻。 项目设计原理 1、 原理概述 SLH89F5162单片机从传感器MPU6050获取游戏手柄的实时2轴加速度值,经过运算可得到游戏手柄的倾斜角度,将这个角度信息通过串口发送到电脑上的接收程序,由接收程序经过简单的数据打包,就能把游戏手柄的姿态传递给游戏对象,从而达到与智能手机重力感应游戏一样的游戏效果。 2、 硬件设计原理 SLH89F5162单片机有内部16.6MHz振荡器,所以不接外部晶振也可正常工作。用其产生115200波特率,通讯速度快,误差极小,可忽略不计,测试了数万个数据,没发现出错的数据。同时,产生的波特率越小,误差越大。单片机内部有复位电路,可省去外部复位电路,因此一片单片机芯片就是一个最小系统。 控制器SLH89F5162单片机为主控制器,负责传感器的控制,传感器信息的读取、矩阵键盘扫描、独立按键输入、与电脑的串口通讯。 传感器MPU6050内部集成了3轴陀螺仪、3轴加速度计、温度传感器和数字运动处理器,并支持外接其他辅助传感器。I2C通讯接口,数字量输出,体积小。 115200波特率的分频系数 = 16.6M / 16 / 115200 = 9.00608 38400波特率的分频系数 = 16.6M / 16 / 38400= 27.0182 19200波特率的分频系数 = 16.6M / 16 / 19200 = 54.0365 9600波特率的分频系数 = 16.6M / 16 / 9600 = 108.073 3、 软件设计原理 软件开发环境采用Keil3,编程语言采用汇编。采用模块化方法,将I2C读写函数、MPU6050操作函数、键盘扫描函数、数学运算、表格分开在不同的文件,编译时再链接在一起。 MPU6050只支持I2C通讯,最大I2C时钟为400KHz,采用汇编语言编写,可最大限度的满足其时钟要求,这是高级语言无法做到的。重力传感器输出的是某一轴的加速度大小,该值与重力加速度g的比值,就是传感器绕该轴与竖直方向夹角的正弦值,只要求其反正弦就可得到相应的角度大小。 angleX = arcsin(accelX / g) angleY = arcsin(accelY / g) 采集的数据具有噪声,采用数字低通滤波器可有效减小噪声干扰。某一轴上不仅存在重力加速度的分量,同时也存在运动加速度的分量,这会对倾角的计算带来误差。运动加速度的分量比重力加速度小很多,持续时间也很短,采用低通滤波算法也能较小运动带来的误差。 低通滤波算法:y =a * y + (1 - a) * x; x:输入, y:输出, a:系数 由于8位的51单片机先天不足,对浮点数据运算的支持很差,尤其是涉及三角函数、反三角函数。所以我采用空间换时间的方法,即通过查表得到arcsin(accel)的值,这样运算非常快,而且精度没有打任何折扣。SLH89F5162具有片内62KFlash ROM,而accel = -8192 ~ 8192,存储8192个浮点数据需要8192 * 4 = 32K字节,采用SLH89F5162单片机没有任何压力。 视频演示: 硬件设计框图: 软件设计框图: 作品展示:

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧