有好多游戏手柄都支持震动功能,游戏是通过什么方法告诉手柄需要震动了??

时间:2022-06-24 04:41:19
带震动的手柄,都是需要安装驱动程序的,驱动是从那里获得游戏需要震动的相关信息的呢?也就是游戏本身是通过什么方式/渠道来向外发送震动信息的??


希望高手指教一二!!

12 个解决方案

#1


其实就是个简易的上下位机通信,上位机和下位机定义好协议,手柄每个键对应什么数据,上位机接收到后处理这些数据的动作就行,上位机进行反馈,什么地方要震动了,给下位机发个命令过去就行了。

#2


引用 1 楼  的回复:
其实就是个简易的上下位机通信,上位机和下位机定义好协议,手柄每个键对应什么数据,上位机接收到后处理这些数据的动作就行,上位机进行反馈,什么地方要震动了,给下位机发个命令过去就行了。


关键就是上位机怎么进行反馈给下位机的,现在很多游戏都支持震动功能的,应该有一个同一标准的方法吧?是什么呢?  不可能只为自己的游戏而建一套协议吧? 

我只了解到DirectX   SDK中的DirectInput是可以接受手柄的相关信息的,那从游戏到手柄有时通过什么了实现的呢?

#3


你可以看看这篇文章,关于力反馈技术的
http://publish.it168.com/2003/1016/20031016003103.shtml

#4


引用 3 楼  的回复:
你可以看看这篇文章,关于力反馈技术的
http://publish.it168.com/2003/1016/20031016003103.shtml


谢谢 g6785654 !

但这篇文章,重点在手柄上,我现在要问的是上位机--只有游戏本身才知道什么时候手柄需要震动,幅度又是多大?游戏的开发者是通过上位机的什么渠道将这些信息传递出来的,手柄驱动的开发者需要到哪里去得到这些信息?

#5


自己顶

#6


你自己都说了DInput嘛,游戏开发者调用DInput的接口,DInput再调用手柄的驱动。手柄驱动的开发者只要遵循DInput的规范就行了。

#7


引用 6 楼  的回复:
你自己都说了DInput嘛,游戏开发者调用DInput的接口,DInput再调用手柄的驱动。手柄驱动的开发者只要遵循DInput的规范就行了。


你好,你的意思是说,DirectInput完成了游戏跟手柄的双向通讯吗? 即游戏也是通过DirectInput来完成跟手柄设备的沟通的吗?

我刚接触DirectInput,很多不了解的地方。

#8


引用 7 楼  的回复:
引用 6 楼  的回复:
你自己都说了DInput嘛,游戏开发者调用DInput的接口,DInput再调用手柄的驱动。手柄驱动的开发者只要遵循DInput的规范就行了。


你好,你的意思是说,DirectInput完成了游戏跟手柄的双向通讯吗? 即游戏也是通过DirectInput来完成跟手柄设备的沟通的吗?

我刚接触DirectInput,很多不了解的地方。

我虽然没怎么用过DirectInput,但是DirectX的设计目的不就是为了隔绝硬件差异,为开发者提供统一的开发接口吗。那么只要硬件支持DirectX规范,那么在程序员眼中就应该没有大的差别。

#9


上位机通知下位机就行了。
directx俺是一点不懂,跟下位机通讯,所有硬件就没什么区别了,让手柄震一下,与点亮手柄上的一个二极管,没有什么差别。

#10


引用 8 楼  的回复:
引用 7 楼  的回复:

引用 6 楼  的回复:
你自己都说了DInput嘛,游戏开发者调用DInput的接口,DInput再调用手柄的驱动。手柄驱动的开发者只要遵循DInput的规范就行了。


你好,你的意思是说,DirectInput完成了游戏跟手柄的双向通讯吗? 即游戏也是通过DirectInput来完成跟手柄设备的沟通的吗?

我刚接触DirectInput,很多不……

++

#11


回答这些问题的人都是sb

#12


人家问的是通过什么协议,你告诉人家协议名称啊,SB,谁不知道是上位机发命令啊。
人家肯定想了解的,命令格式啊。你总不能自己搞一套命令格式,那通用的游戏能让你的手柄震动起来吗?

我来告诉你吧:
用的是
I-Force协议

#1


其实就是个简易的上下位机通信,上位机和下位机定义好协议,手柄每个键对应什么数据,上位机接收到后处理这些数据的动作就行,上位机进行反馈,什么地方要震动了,给下位机发个命令过去就行了。

#2


引用 1 楼  的回复:
其实就是个简易的上下位机通信,上位机和下位机定义好协议,手柄每个键对应什么数据,上位机接收到后处理这些数据的动作就行,上位机进行反馈,什么地方要震动了,给下位机发个命令过去就行了。


关键就是上位机怎么进行反馈给下位机的,现在很多游戏都支持震动功能的,应该有一个同一标准的方法吧?是什么呢?  不可能只为自己的游戏而建一套协议吧? 

我只了解到DirectX   SDK中的DirectInput是可以接受手柄的相关信息的,那从游戏到手柄有时通过什么了实现的呢?

#3


你可以看看这篇文章,关于力反馈技术的
http://publish.it168.com/2003/1016/20031016003103.shtml

#4


引用 3 楼  的回复:
你可以看看这篇文章,关于力反馈技术的
http://publish.it168.com/2003/1016/20031016003103.shtml


谢谢 g6785654 !

但这篇文章,重点在手柄上,我现在要问的是上位机--只有游戏本身才知道什么时候手柄需要震动,幅度又是多大?游戏的开发者是通过上位机的什么渠道将这些信息传递出来的,手柄驱动的开发者需要到哪里去得到这些信息?

#5


自己顶

#6


你自己都说了DInput嘛,游戏开发者调用DInput的接口,DInput再调用手柄的驱动。手柄驱动的开发者只要遵循DInput的规范就行了。

#7


引用 6 楼  的回复:
你自己都说了DInput嘛,游戏开发者调用DInput的接口,DInput再调用手柄的驱动。手柄驱动的开发者只要遵循DInput的规范就行了。


你好,你的意思是说,DirectInput完成了游戏跟手柄的双向通讯吗? 即游戏也是通过DirectInput来完成跟手柄设备的沟通的吗?

我刚接触DirectInput,很多不了解的地方。

#8


引用 7 楼  的回复:
引用 6 楼  的回复:
你自己都说了DInput嘛,游戏开发者调用DInput的接口,DInput再调用手柄的驱动。手柄驱动的开发者只要遵循DInput的规范就行了。


你好,你的意思是说,DirectInput完成了游戏跟手柄的双向通讯吗? 即游戏也是通过DirectInput来完成跟手柄设备的沟通的吗?

我刚接触DirectInput,很多不了解的地方。

我虽然没怎么用过DirectInput,但是DirectX的设计目的不就是为了隔绝硬件差异,为开发者提供统一的开发接口吗。那么只要硬件支持DirectX规范,那么在程序员眼中就应该没有大的差别。

#9


上位机通知下位机就行了。
directx俺是一点不懂,跟下位机通讯,所有硬件就没什么区别了,让手柄震一下,与点亮手柄上的一个二极管,没有什么差别。

#10


引用 8 楼  的回复:
引用 7 楼  的回复:

引用 6 楼  的回复:
你自己都说了DInput嘛,游戏开发者调用DInput的接口,DInput再调用手柄的驱动。手柄驱动的开发者只要遵循DInput的规范就行了。


你好,你的意思是说,DirectInput完成了游戏跟手柄的双向通讯吗? 即游戏也是通过DirectInput来完成跟手柄设备的沟通的吗?

我刚接触DirectInput,很多不……

++

#11


回答这些问题的人都是sb

#12


人家问的是通过什么协议,你告诉人家协议名称啊,SB,谁不知道是上位机发命令啊。
人家肯定想了解的,命令格式啊。你总不能自己搞一套命令格式,那通用的游戏能让你的手柄震动起来吗?

我来告诉你吧:
用的是
I-Force协议