一种射击游戏的瞄准方法及装置的制造方法
【技术领域】
[0001]本发明涉及一种移动游戏中的瞄准的技术,尤其涉及一种移动触屏终端上的射击游戏的瞄准方法及装置。
【背景技术】
[0002]移动游戏是一种用户通过移动通讯网络在移动触屏终端如手机、平板电脑等平台上操作的电子游戏业务,其包括棋牌游戏、角色游戏、策略游戏、动作游戏等。射击游戏作为动作游戏中一种,目前其通过虚拟摄像机进行瞄准射击的实现通常使用如下的方案,如现在移动触屏终端上的主流的FPS (如现代战争系列)和TPS (如火线指令系列)都使用了双摇杆的操作方案,这种方案就是在触屏上模拟两个摇杆,左摇杆控制目标移动,右摇杆控制虚拟摄像机的镜头瞄准射击。这套方案看似合理,但实际上并不符合人体工学:
[0003]首先,用右摇杆替代了鼠标操作,意味着要求完全用右手拇指完成之前要整个手臂配合才能完成的一系列复杂、精细、快速的操作。导致玩家在转向、瞄准的时候困难重重,操作结果错漏百出;
[0004]其次,虚拟摇杆不能像真实摇杆或鼠标那样给玩家的手予以反馈,任何操作都需要用户自己的眼睛去观察校准,进一步增加了操作难度。
[0005]以上两点会导致用户游戏时的体验挫折感升高,整体感觉下降,从而使得FPS和TPS在移动触屏设备上受众狭窄、发展困难,远达不到本该有的市场效果。
【发明内容】
[0006]针对现有技术的不足,本发明的目的旨在于提供一种方便虚拟摄像机准确进行转向瞄准,同时能有效提高游戏体验度的射击游戏的瞄准方法。
[0007]为实现上述目的,本发明采用如下技术方案:
[0008]一种射击游戏的瞄准方法,其应用于具有触摸显示屏的移动终端,其特征在于,包括如下步骤:
[0009]定位步骤,当所述移动终端处于游戏界面时,获取虚拟摄像机当前的旋转角度;
[0010]旋转步骤,当检测到所述游戏界面有接触时,获取接触对象的坐标位置,以使所述虚拟摄像机当前的旋转角度与所述坐标位置匹配;
[0011]调整步骤,当检测到所述移动终端晃动时,通过所述移动终端的传感器获取相应的晃动角度,以使所述虚拟摄像机当前的旋转角度与所述晃动角度匹配。
[0012]优选的,旋转步骤包括如下子步骤:
[0013]确定对象步骤,当检测到所述游戏界面有接触时,检测所有处于触摸状态的列表对象,获得处于点击游戏界面状态的列表对象并将其记为接触对象,获取所述接触对象的坐标位置;
[0014]辅助步骤,根据辅助函数创建一条以虚拟摄像机的近裁面为起点并穿过所述坐标位置的辅助射线,获取所述辅助射线的旋转角度;
[0015]确定增量步骤,通过循环函数得出所述虚拟摄像机当前的旋转角度到所述辅助射线的旋转角度的中间插值;
[0016]应用增量步骤,将中间插值应用到虚拟摄像机上,使得虚拟摄像机的旋转幅度与中间插值相等,记录虚拟摄像机旋转之后的旋转角度;
[0017]判断步骤,若虚拟摄像机旋转之后的旋转角度与辅助射线的旋转角度相匹配,则完成虚拟摄像机的初步移动,若否则返回确定增量步骤。
[0018]优选的,调整步骤中的传感器为陀螺仪,通过启动陀螺仪,获取陀螺仪的重力参数值以控制虚拟摄像机的旋转角度。
[0019]优选的,调整步骤中的传感器为重力传感器,通过启动重力传感器,实时获取重力传感器的加速度值,判断所述加速度值每秒产生的角变化量,若所述角变化量超过预设阈值,则根据变化后的角变化量控制虚拟摄像机的旋转角度。
[0020]优选的,所述加速度值为三维向量值,其由X轴加速度值、Y轴加速度值和Z轴加速度值构成,其中X轴加速度值、Y轴加速度值和Z轴加速度值的大小范围均在为-1至I之间。
[0021]本发明还提出一种射击游戏的瞄准装置,包括如下模块:
[0022]定位模块,用于当所述移动终端处于游戏界面时,获取虚拟摄像机当前的旋转角度;
[0023]旋转模块,用于当检测到所述游戏界面有接触时,获取接触对象的坐标位置,以使所述虚拟摄像机当前的旋转角度与所述坐标位置匹配;
[0024]调整模块,用于当检测到所述移动终端晃动时,通过所述移动终端的传感器获取相应的晃动角度,以使所述虚拟摄像机当前的旋转角度与所述晃动角度匹配。
[0025]优选的,所述旋转模块包括如下子模块:
[0026]确定对象模块,用于当检测到所述游戏界面有接触时,检测所有处于触摸状态的列表对象,获得处于点击游戏界面状态的列表对象并将其记为接触对象,获取所述接触对象的坐标位置;
[0027]辅助模块,用于根据辅助函数创建一条以虚拟摄像机的近裁面为起点并穿过所述坐标位置的辅助射线,获取所述辅助射线的旋转角度;
[0028]确定增量模块,用于通过循环函数得出所述虚拟摄像机当前的旋转角度到所述辅助射线的旋转角度的中间插值;
[0029]应用增量模块,用于将中间插值应用到虚拟摄像机上,使得虚拟摄像机的旋转幅度与中间插值相等,记录虚拟摄像机旋转之后的旋转角度;
[0030]判断模块,用于若虚拟摄像机旋转之后的旋转角度与辅助射线的旋转角度相匹配,则完成虚拟摄像机的初步移动,若否则返回确定增量模块。
[0031]优选的,调整模块中的传感器为陀螺仪,通过启动陀螺仪,获取陀螺仪的重力参数值以控制虚拟摄像机的旋转角度。
[0032]优选的,调整模块中的传感器为重力传感器,通过启动重力传感器,实时获取重力传感器的加速度值,判断所述加速度值每秒产生的角变化量,若所述角变化量超过预设阈值,则根据变化后的角变化量控制虚拟摄像机的旋转角度。
[0033]优选的,所述加速度值为三维向量值,其由X轴加速度值、Y轴加速度值和Z轴加速度值构成,其中X轴加速度值、Y轴加速度值和Z轴加速度值的大小范围均在为-1至I之间。
[0034]本发明的有益效果如下:该方法方便虚拟摄像机准确进行转向瞄准,同时能够有效地提高玩家对游戏的体验度;本方案采用触屏与重力传感器或陀螺仪相结合的方式,即在检测到接触对象后,完成虚拟摄像机的初步转动,通过重力传感器或陀螺仪对虚拟摄像机的旋转角度进行精确的调整,从而方便了虚拟摄像机准确瞄准的接触对象,进一步提高了玩家在游戏过程中的体验度。
【附图说明】
[0035]图1为本发明一种射击游戏的瞄准方法的较佳实施方式的流程图。
[0036]图2为本发明一种射击游戏的瞄准方法中旋转步骤的较佳实施方式的流程图。
【具体实施方式】
[0037]下面将结合附图以及【具体实施方式】,对本发明做进一步描述:
[0038]请参见图1,本实施例涉及一种射击游戏的瞄准方法,其应用于具有触摸显示屏的移动终端,包括如下步骤:
[0039]定位步骤SI,当移动终端处于游戏界面时,获取虚拟摄像机当前的旋转角度。其中,虚拟摄像机就是玩家在3D游戏中的“眼睛”,该虚拟摄像机拍摄到的景物就是玩家在屏幕上看到景物,全游戏中一个场景内只有唯一一个虚拟摄像机。该虚拟摄像机当前的旋转角度是一个四元数,四元数可以看做是一个四维向量,用来表示物体在空间中的旋转等。
[0040]旋转步骤S2,当检测到游戏界面有接触时,获取接触对象的坐标位置,以使虚拟摄像机当前的旋转角度与坐标位置匹配。具体的,在游戏过程中,这是一个粗调准星位置的步骤,即一检测到游戏界面有接触,虚拟摄像机进行旋转并对准有接触的范围,可以使得有接触的范围显示在移动终端的触摸显示屏上的预设位置,该预设位置可以是屏幕中央。该步骤可以通过点击触屏实现,对应键鼠FPS里玩家用肩肘快速滑动鼠标、转向并大致瞄准目标的操作,以此完成虚拟摄像机大幅转动的操作,此时旋转角度往往大于10度,当然也可以根据实际情况设定虚拟摄像机大幅转动的旋转角度大于多少度。
[0041]调整步骤S3,当检测到移动终端晃动时,通过移动终端的传感器获取相应的晃动角度,以使虚拟摄像机当前的旋转角度与晃动角度匹配。具体的,在游戏过程中,这是一个微调准星位置的步骤,当游戏中的接触范围显示在移动终端的触摸显示屏上的预设位置时,通过传感器来实现精确的瞄准。该步骤可以通过晃动移动终端、通过传感器来实现,对应键鼠FPS里玩家用手腕轻轻挪动鼠标、瞄准目标头部的操作,即以此完成虚拟摄像机细微转动的操作,此时旋转角度往往小于5度,当然也可以根据实际情况设定虚拟摄像机细微转动的旋转角度小于多少度。
[0042]如图2所示,旋转步骤S2可以包括如下子步骤:
[0043]确定对象步骤S2a,当点击游戏界面时,检测所有处于触摸状态的列表对象,获得处于点击游戏界面状态的列表对象并将其记为接触对象,获取接触对象的坐标位置touchPosit1n0
[0044]辅助步骤S2b,根据辅助函数创建一条以虚拟摄像机的近裁面为起点并穿过坐标位置touchPosit1n的辅助射线Ray,获取辅助射线Ray的旋转角度touchQ。该辅助函数可以是 Unity 函数 ScreenPointToRay0
[0045]确定增量步骤S2c,通过循环函数得出虚拟摄像机当前的旋转角度到辅助射线的旋转角度touchQ的中间插值lerpQ。该循环函数可以是Update、FixedUpdate、InvokeRepeating以及协程while函数中的任一函数。中间插值IerpQ是一个不断靠拢辅助射线方向的四元数,因为四元数是一个可以规范化的四维向量,适用于各种插值,如线性插值算法:q(t) = (l-t)ql+t q2/| | (l_t)ql+tq2| |,更多信息可查阅《阴山学刊:自然科学版》2012年第I期郑军所著的“四元数插值算法实现游戏较色平滑旋转”。
[0046]应用增量步骤S2d,将中间插值IerpQ应用到虚拟摄像机上,使得虚拟摄像机的旋转幅度与中间插值IerpQ相等,记录虚拟摄像机旋转之后的旋转角度。
[0047]判断步骤S2e,若虚拟摄像机旋转之后的旋转角度与辅助射线的旋转角度相匹配,则完成虚拟摄像机的初步移动,此时虚拟摄像机的旋转角度与辅助射线Ray的旋转角度一致,若否则返回确定增量步骤S2c。
[0048]优选的,调整步骤中的传感器可以是为陀螺仪,通过启动陀螺仪,获取陀螺仪的重力参数值以控制虚拟摄像机的旋转角度。
[0049]具体的,陀螺仪启动之后,获取陀螺仪的重力参数X、Y轴的值,将X、Y轴的值乘以一定的放大倍数系数,即将获取的X、Y轴的值作为基础值,预定义此基础值的放大倍数系数,并自定义设定放大倍数系数越大则虚拟摄