发明内容
本申请所要解决的技术问题是提供一种基于云游戏的鼠标信号处理装置,包括:
位移量获取模块,用于获取鼠标的位移,其中,所述位移包括所述鼠标移动的方向和距离;
转换模块,用于将所述位移转换为光标在用户界面的窗口坐标和鼠标的物理坐标,其中,所述窗口坐标所在的坐标系以位于所述用户界面上的游戏窗口的原点为原点;所述物理坐标所在的坐标系以所述鼠标的初始位置为原点;
画面获取模块,用于根据所述窗口坐标或所述物理坐标获取云游戏画面。
优选地,所述转换模块进一步包括窗口坐标计算单元,用于根据所述位移计算所述光标相对于所述游戏窗口的原点的横坐标和纵坐标;以及物理坐标计算单元,用于根据所述位移计算鼠标相对于其初始位置的横坐标和纵坐标。
优选地,所述画面获取模块进一步包括选择单元,用于根据所述游戏的类型选择使用窗口坐标或物理坐标;以及获取单元,用于根据所述窗口坐标或物理坐标获取云游戏画面。
优选地,还包括发送模块,用于将所述云游戏画面发送至所述用户界面。
相应地,本申请还提供了一种基于云游戏的鼠标信号处理方法,包括:
获取鼠标的位移,其中,所述位移包括所述鼠标移动的方向和距离;
将所述位移转换为光标在用户界面的窗口坐标和鼠标的物理坐标,其中,所述窗口坐标所在的坐标系以位于所述用户界面上的游戏窗口的原点为原点;所述物理坐标所在的坐标系以所述鼠标的初始位置为原点;
根据所述窗口坐标或所述物理坐标获取云游戏画面。
优选地,所述将所述位移转换为光标在用户界面的窗口坐标和鼠标的物理坐标进一步包括根据所述位移计算所述光标相对于所述游戏窗口的原点的横坐标和纵坐标;以及根据所述位移计算鼠标相对于其初始位置的横坐标和纵坐标。
优选地,所述根据所述窗口坐标或所述物理坐标获取云游戏画面进一步包括根据所述游戏的类型选择使用窗口坐标或物理坐标;以及根据所述窗口坐标或物理坐标获取云游戏画面。
优选地,还包括将所述云游戏画面发送至所述用户界面。
与现有技术相比,本申请对于安装了Linux、Android、Mac等非windows操作系统的客户端,可以通过获取鼠标的位移,再将该位移转换为安装windows操作系统的服务器能够识别的窗口坐标和物理坐标,从而定位鼠标信号在云游戏画面中的位置,并将该位置所对应的云游戏画面发送至所述客户端,从而解决了客户端和服务器操作系统不同造成鼠标信号无法定位的问题。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请一种基于云游戏的鼠标信号处理装置示意图。
鼠标信号处理装置100包括:位移获取模块101,用于获取鼠标的位移,其中,所述位移包括所述鼠标移动的方向和距离。
位移获取模块101可以位于客户端中,客户端可以是PC机、电视、便携终端、平板、投影机等具有显示和解码能力的装置。客户端上安装了Linux、Android、Mac等操作系统,在这些操作系统环境下,没有现成的函数来调用鼠标的窗口坐标和物理坐标,只能获得鼠标相对前一个位置移动的方向和距离。
鼠标中具有传感器模块,该模块产生的光电脉冲信号反映出鼠标在垂直和水平方向的位移变化,再通过电脑程序的处理和转换来控制屏幕上光标箭头的移动。该鼠标可以为机械式,光机式或光电式鼠标,在本发明一实施例中,该鼠标为光学鼠标。光学鼠标具有分辨率,该分辨率是指鼠标在桌面上每移动1英寸距离鼠标所产生的脉冲数,脉冲数越多,鼠标的灵敏度也越高。光标在屏幕上移动同样长的距离,分辨率高的鼠标在桌面上移动的距离较短,给人感觉“比较快”。
转换模块102,用于将所述位移转换为光标在用户界面的窗口坐标和鼠标的物理坐标,其中,所述窗口坐标所在的坐标系以位于所述用户界面上的游戏窗口的原点为原点;所述物理坐标所在的坐标系以所述鼠标的初始位置为原点。
如图2所示,游戏在客户端可以以窗口的形式呈现,该窗口的尺寸小于用户界面(屏幕)的尺寸,窗口坐标以窗口的原点(如窗口的左上角)为原点,原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向;也可以以全屏的形式呈现,此时游戏界面的尺寸即为用户界面(屏幕)的尺寸,窗口坐标以屏幕的原点(如屏幕的左上角)为原点,原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向。当游戏以全屏的形式呈现时,光标的窗口坐标即为光标在屏幕上的坐标。
所述转换模块102进一步包括窗口坐标计算单元103,用于根据所述位移计算所述光标相对于所述游戏窗口的原点的横坐标和纵坐标;以及物理坐标计算单元104,用于根据所述位移计算鼠标相对于其初始位置的横坐标和纵坐标。
转换模块102将位移转换为所述光标在所述用户界面的窗口坐标和鼠标的物理坐标是分别通过窗口坐标计算单元103和物理坐标计算单元104实现的。具体地,窗口坐标计算单元103是将鼠标的位移转换为光标在用户界面的窗口坐标。在本发明一实施例中,鼠标的位移与光标的位移是相同的,即鼠标的移动与光标的移动是同步的。窗口坐标是以游戏窗口的原点(如窗口左上角)作为坐标系的原点,光标的窗口坐标代表了该光标相对于该原点的横坐标X值和纵坐标Y值。位移获取模块101获取的光标在用户界面的位移是光标的当前位置相对于其前一个位置的横坐标的位移和纵坐标的位移。窗口坐标计算单元103将光标前一个位置的横坐标和纵坐标分别与光标的横坐标的位移和纵坐标的位移相加,便得到光标当前位置的横坐标和纵坐标。其中,该位移可以为正值,也可以为负值,当位移为正值时表示光标是向X轴或Y轴正方向移动,当位移为负值时表示光标是向X轴或Y轴负方向移动。所述窗口坐标的横坐标和纵坐标限于所述游戏窗口的范围,若光标超出窗口范围,则其窗口坐标仍然为该光标在窗口边缘的坐标。
物理坐标计算单元104是通过鼠标的初始位置作为坐标系的原点,光标的坐标代表了该光标相对于该原点的横坐标X值和纵坐标Y值。位移获取模块101获取的鼠标的位移是鼠标的当前位置相对于其前一个位置的横坐标的位移和纵坐标的位移。物理坐标计算单元104将鼠标前一个位置的横坐标和纵坐标分别与鼠标的横坐标的位移和纵坐标的位移相加,便得到鼠标当前位置的横坐标和纵坐标。其中,该位移可以为正值,也可以为负值,当位移为正值时表示光标是向X轴或Y轴正方向移动,当位移为负值时表示鼠标是向X轴或Y轴负方向移动。所述物理坐标的横坐标和纵坐标不限于所述用户界面的范围。所述物理坐标以所述鼠标的初始位置为原点,随着游戏画面的移动,物理坐标不断累加,例如,如果游戏画面水平向左移动,X坐标减小;如果游戏画面水平向右移动,X坐标增大。如果游戏画面垂直向上移动,Y坐标减小;如果游戏画面垂直向下移动,Y坐标增大。物理坐标的横坐标和纵坐标可以超出屏幕的范围,如若屏幕的分辨率为640×480,以像素作为单位长度,则鼠标的物理坐标可能为(70000,100000)。
画面获取模块105,用于根据所述窗口坐标或所述物理坐标获取游戏画面。
游戏画面是运行于云服务器上的游戏进程所能呈现的图像,该图像可以不显示出来,云服务器通过获取光标在游戏画面中的位置来调用该位置所对应的光标的图形,并发送至客户端,呈现于用户界面上。
所述云服务器是一种类似VPS服务器的虚拟化技术,VPS是采用虚拟软件,VZ或VM在一台服务器上虚拟出多个类似独立服务器的部分,每个部分都有云服务器的一个镜像,都可以做单独的操作系统,管理方法同服务器一样。
所述画面获取模块105进一步包括选择单元106,用于根据所述游戏的类型选择使用窗口坐标或物理坐标;以及获取单元107,用于根据所述窗口坐标或物理坐标获取游戏画面。
游戏的类型主要包括两种,一种是游戏背景图像是静态的,如连连看、捕鱼达人等,另一种是游戏背景图像是动态的,游戏背景图像可以随着鼠标位置的移动而发生变化,如CS。当游戏背景图像是静态时,由于光标的活动范围不会超出游戏窗口,以窗口坐标更便于控制游戏进程,因此画面获取模块105将选择使用窗口坐标。当游戏背景图像是动态时,由于光标的活动范围是不可控的,因此画面获取模块105将选择使用鼠标的物理坐标。
选择窗口坐标或物理坐标后,云服务器的云游戏软件模块通过sendmessage函数将窗口坐标或物理坐标发送至游戏程序。获取单元107获取窗口坐标或物理坐标,并将游戏进程中的光标或鼠标的坐标位置移动到相应的游戏画面中,并将其转换为对游戏的控制指令,从而改变游戏进程,游戏进程运行的结果包括游戏画面和游戏程序代码两部分,而获取单元107仅获取游戏画面。
所述鼠标信号处理装置还包括发送模块108,用于将所述游戏画面发送至所述用户界面。
本申请中的服务器为云服务器,在云服务器中设置云服务软件,通过运行该软件程序可以抓取流媒体画面数据,压缩所述画面数据,以及将所述画面数据传输至客户端。客户端仅接受流媒体内容中的画面数据,而该流媒体内容的程序代码等数据则存储在云服务器上。这种方式降低了对客户端性能的要求,客户端不再需要配置强大的显卡等硬件设备,而仅需要具有数据接受、流媒体解码和显示的功能。
发送模块108将游戏画面发送至客户端,由客户端对游戏画面进行解码,并传送至用户界面。
不同的游戏中光标的图形可能不相同,例如,在CS游戏中,光标的图形是十字星,在捕鱼达人游戏中,光标的图形是较大的箭头,在连连看游戏中光标的图形是windows系统光标的图形。光标的图形可以嵌在游戏画面中一起发送给客户端,也可以与游戏画面分离,分别发送给客户端。光标的图形与游戏画面分别发送给客户端可以缓解因光标传送延迟造成用户发出的指令与传回的游戏画面不一致的问题。也可以在客户端中预先存储游戏的光标图形,此种情况下,云服务器会将光标或鼠标在游戏画面中的坐标发送给客户端,由客户端调用相应的光标图形,并加载到用户界面上,与游戏画面合为一体。
参照图3,示出了本申请一种基于云游戏的鼠标信号处理方法的流程图。
该方法包括:
步骤S31:获取鼠标的位移,其中,所述位移包括所述鼠标移动的方向和距离;
步骤S32:将所述位移转换为光标在用户界面的窗口坐标和鼠标的物理坐标,其中,所述窗口坐标所在的坐标系以位于所述用户界面上的游戏窗口的原点为原点;所述物理坐标所在的坐标系以所述鼠标的初始位置为原点;
步骤S33:根据所述窗口坐标或所述物理坐标获取游戏画面。
所述将所述位移转换为光标在用户界面的窗口坐标和鼠标的物理坐标进一步包括根据所述位移计算所述光标相对于所述游戏窗口的原点的横坐标和纵坐标;以及根据所述位移计算鼠标相对于其初始位置的横坐标和纵坐标。
所述根据所述窗口坐标或所述物理坐标获取游戏画面进一步包括根据所述游戏的类型选择使用窗口坐标或物理坐标;以及根据所述窗口坐标或物理坐标获取游戏画面。
所述方法还包括将所述游戏画面发送至所述用户界面。
对于方法实施例而言,由于其与系统实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
以上对本申请所提供的一种基于云游戏的鼠标信号处理装置及方法进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。