发明内容
本发明要解决的技术问题是提供一种基于多游戏控制设备的动感游戏控制方法,能使不同的游戏控制设备控制具有相同接口的游戏,实现具有不同输出信号的游戏控制设备实现相同游戏的控制。
为解决上述技术问题,本发明的基于多游戏控制设备的动感游戏控制方法包括如下步骤:
步骤一、游戏控制设备与游戏端建立连接后,游戏端向游戏控制设备发出游戏控制设备的版本请求,游戏控制设备按照设定好的数据格式将游戏控制设备的版本号发送给游戏端;
步骤二、游戏端根据获得的版本号,分析目前的游戏控制设备类型,所支持的数据类型;
步骤三、根据目前的游戏控制设备类型以及现在正在进行的游戏,游戏端分析游戏控制设备中的传感器是否完全支持游戏的控制;如果支持则转移到步骤五,如果不完全支持则执行步骤四;
步骤四、将游戏控制设备中的其他传感器和控制器件转换成游戏端所需的传感器和控制器件相对应的数据;
步骤五、游戏端根据不同的游戏控制设备,将各种不同的数据包归类,供游戏端随时调用;
步骤六、游戏端根据需要的数据类型,选择最佳的数据包控制游戏。
由于采用本发明的方法,通过对不同的游戏控制设备进行归类,对不同的游戏控制设备赋予一个不同的版本号,在游戏端与游戏控制设备建立连接时,首先获得游戏控制设备的版本号,根据不同的版本号分析目前游戏控制设备上所支持的数据类型、格式以及控制方式,经过调整后来控制具体的游戏动作。
本发明的方法可以使多种不同的游戏控制设备都可以控制相关的游戏,使用户可以利用目前的现有游戏控制设备(比如具有运动类传感器的鼠标、手机、遥控器、游戏手柄等)去玩动感游戏,而不需要去寻求专用的游戏手柄。
具体实施方式
本发明所述的方法目的是使一个动感游戏能够被多个不同的游戏控制设备所控制,由此摆脱传统动感游戏中特定游戏只能由特定的游戏控制设备来控制的限制。
本发明的方法通过在不同的电子设备中加入动感游戏所需的运动类传感器和控制器件,并结合不同设备的版本管理,可以在诸如手机、遥控器、鼠标等电子设备实现多种不同的游戏控制设备;通过将游戏控制设备内部的信息重新组合,使不同输出信号的游戏控制设备可以控制相同的游戏,进而可以使用多个不同的游戏控制设备对同一动感游戏实现联合控制,如图1所示。
多种具有游戏手柄功能的游戏控制设备,在同时去控制相同动感游戏时,最开始需要解决的问题是需要对不同的游戏控制设备进行识别,根据识别到的设备类型进行数据调整和控制方式的调整。
在本发明的具体实施例中,对所有的游戏控制设备分配一个硬件代码号和一个软件代码号,根据不同的性能进行区分。比如:游戏手柄的硬件代码号是“1102”,软件代码号会根据不同游戏手柄的特征而改变;软件代码号和硬件代码号中前面一个字节(如“28”或“11”)的数据定义是自定的;带游戏功能的鼠标硬件代码是“2100”;带游戏手柄功能的遥控器硬件代码是“2202”;带游戏手柄功能的手机硬件代码是“3102”等等。按照具体的分类,得到一游戏控制个设备代码列表,如表1所示。
表1
在表1中的内部特征描述栏内,正体字表示的内部特征是该游戏控制设备包含的功能,斜体字表示的内部特征是该游戏控制设备不包含的功能。
软件代码号的后面一个字节的定义,按陀螺仪、摇杆、声音、振动、加速度、按键顺序,支持的对应位为1,不支持的为0。例如,含按键、加速度、振动、摇杆内部特征,不含陀螺仪、声音内部特征的游戏手柄,对应数据为“0b00010111”,即“0x17”。
结合图2所示,游戏主机(游戏端)在与外部的游戏控制设备建立连接后,首先发命令要求读取游戏控制设备的硬件代码号和软件代码号,该硬件代码号和软件代码号共同作为某一游戏控制设备的版本号。获得硬件代码号和软件代码号后,游戏主机根据表1中的分类来分析目前游戏控制设备的类型和内部支持的控件,比如,带游戏手柄功能的手机的版本号为“3102153f”,游戏主机会得知该游戏控制设备是手机,并支持包括陀螺仪、摇杆、声音、振动、加速度、按键在内的所有功能模块。游戏主机分析目前开启的游戏需要的功能,根据需要的功能开启游戏控制设备对应的功能模块。比如,游戏中需要用到声音反馈控制功能,游戏主机先发送命令开启游戏控制设备上的声音模块,对于不需要用的模块,游戏控制设备初始化时或通过游戏主机发命令将其关闭以起到降低功耗的目的。
当游戏中需要用到的功能游戏控制设备中不支持时,游戏端会根据实际支持的模块,将数据进行转换,实现游戏功能的控制。比如,版本号为“11022817”的游戏手柄(结合表1),支持摇杆、振动、加速度、按键,但不支持陀螺仪和声音,而游戏中需要用到陀螺仪实现的空中鼠标功能时,游戏控制设备会将摇杆的偏移量按时间进行积分,用获得的相对位移来控制实际的空中鼠标。而对于声音部分,游戏端发现该游戏控制设备不支持声音后,自动将声音播放的数据传输禁用。
采用本发明的方法,多种不同的游戏控制设备可以同时控制同一动感游戏,可以让游戏玩家在有限的条件完整体验游戏。比如,对于传统的球类游戏,要实现两人对打需要有两个游戏手柄,而采用本发明的方法可以实现一个具有游戏手柄功能的鼠标和一个具有游戏手柄功能的手机同样进行两人对打的球类游戏。
采用本发明的方法能使具有不同运动类传感器与不同控制方式的不同游戏控制设备可以同时控制同一游戏,解决了不同层次游戏控制设备控制相同游戏的问题,有利于不同的用户选择不同的电子设备而不影响使用电子设备主要的功能。
所述游戏控制设备可以是内含传感器的游戏手柄、鼠标、遥控器、手机、MP3、MP4等等。所述游戏控制设备内部包含有加速度传感器、陀螺仪、磁传感器、压力传感器、温度传感器、摇杆等中的一种或多种。
游戏控制设备内部将不同的数据类型进行归类,在不同的游戏中,可以根据实际的数据需要,调用对应的数据包,而对于那些数据包中不包含的传感器,游戏控制设备自动将其电源关闭以达到降低功耗的目的。
所述不同的数据类型进行归类是指,包含有加速度传感器、陀螺仪、摇杆、按键的游戏控制设备,会将与陀螺仪相关的原始数据、空中鼠标位移数据等放在一个数据结构体中,将与加速度相关的原始数据、挥舞动作数据、力度数据等放在一个结构体中,以便游戏主机根据实际的需要选择对应的数据。不同版本号对应的是不同的游戏控制设备或具有不同内部传感器特征的游戏控制设备。而这里所说的数据包,是对应特定游戏控制设备中的数据,这些数据需要先进行上面说到的归类,之后根据游戏中的特征,将数据打包。比如,目前游戏只需要按键和加速度实现的挥舞动作,将按键数据和加速度挥舞动作数据整理成一个数据包,发送给游戏端。
采用本发明的方法,不同游戏控制设备上传到游戏端的数据进行归类统一,使游戏可以方便控制;对于某些游戏中需要而游戏控制设备中不包含的传感器与控制部件,游戏主机选择其它的传感器与控制部件,经过处理后再控制游戏;不同的游戏控制设备可以在同一游戏中控制不同的角色。
数据的归类统一包含两个方面的含义:
1、对应相同内部传感器等组件,将对应传感器所能实现的具体数据结果保存在对应的相同的结构体中,不同传感器因具有不同的特征,数据结构也不同。
2、对于具有不同的传感器类型,为了能够获得相同的控制效果,会将其他传感控制部件的数据经过转化,获得相同的数据类型,比如,一个设备上没有陀螺仪,但有摇杆,系统会根据摇杆的偏移按时间积分,获得的偏移数据放在陀螺仪传感器对应数据结构体中的鼠标偏移位置,通过逆向运算(陀螺仪中心点位置数据加上实际偏移)获得陀螺仪的原始数据。这样,对于具有陀螺仪和没有陀螺仪的游戏控制设备,对游戏端而言就实现了统一。
以上通过具体实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。