一种摇杆数值的处理方法与流程

文档序号:17771633发布日期:2019-05-28 19:29阅读:1192来源:国知局
一种摇杆数值的处理方法与流程

本发明涉及游戏引擎技术领域,特别是涉及一种摇杆数值的处理方法。



背景技术:

在手机等智能平台中,有些游戏原本并不支持摇杆,一种解决办法是把摇杆的数值转换成屏幕上的触摸点,可以达到控制角色位置移动、视角转动(下面简称视角)的效果。本文主要讨论用于控制视角的场景(后面称视野模式)。

在视野模式中,所模拟的触点是从屏幕中某个预设的点出发,然后根据摇杆偏移量计算模拟触点移动的增量(单位为像素),上一时刻的触点位置和每次计算出来的增量共同决定下一时刻触点的位置。

游戏中有多种视角控制的场景:较大视角移动场景、小范围微调视角场景、类似枪支瞄准操作极精细调整视角场景,不同场景下需要不同的视角转动速度。因此如何根据摇杆的偏移量计算触点增量是影响摇杆体验的关键因素。

目前常见的技术解决方案有以下三种:

1.常量方案:只要偏移量不为0,则增量为常量。此种方案的缺点是增量并没有根据偏移量变化而变化,因此只有一种角速度,无法同时满足不同的视角控制场景——无法精细视角调整。

2.线性方案:增量=偏移量x加速系数,并取整。此种方案的缺点是增量随偏移量成线性变化,虽然在一定程度上缓解了常量方案存在的问题,但在需要精细调整视角的场景仍然力不从心。

3.分段加速方案:在“线性方案”的基础上,把偏移量划分为若干区间,并为每个定义不同的加速系数。此种方案的缺点是在线性方案的基础上强化了各种角速度的区别,但在需要精细调整视角的场景没有本质上的改善。

4.曲线拟合方案:把从偏移量到增量的关系拟合成一条曲线函数(其中偏移量为自变量,增量为从变量),计算结果取整。此种方案的缺点和分段加速方案的缺点一样。



技术实现要素:

为了解决现有技术存在的不足,本发明的目的在于提供一种摇杆数值的处理方法,可以让视角控制更加友好,大幅度提升瞄准体验。

为实现上述目的,本发明提供的一种摇杆数值的处理方法,包括:

上报摇杆数值并进行预处理;

对摇杆偏移量进行区间划分并标识;

计算每个区间的移动增量;

输出最终的移动增量;

根据模拟触点的当前位置和最终的移动增量计算下一时刻的触点位置。

进一步地,所述对摇杆偏移量进行区间划分并标识的步骤,进一步包括:

根据不同的视角转动速度对摇杆偏移量划分为不同的三个区间分别为:大偏移量区间、微调区间和精调区间。

进一步地,所述计算每个区间的移动增量的步骤,包括:

计算大偏移量区间的移动增量,公式为:

funa=d*viewspeed;

其中,funa为大角度转动视角场景对应的移动增量,d为偏移量,viewspeed为预设的视角速度;

计算微调区间的移动增量,公式为:

funcb=fprecision*(d+800)/1000;

其中,funcb为小角度转动视角场景对应的移动增量,fprecision为微调精度,d为偏移量;

计算精调区间的移动增量,公式为:

funcc=fprecision*d/l;

其中,funcc为精调视角场景对应的移动增量,fprecision为微调精度,d为偏移量,l为取值常量。

更进一步地,所述输出最终的移动增量的步骤,进一步包括:如果移动增量绝对值大于1,则输出其整数部分作为最终的移动增量;否则将移动增量累加。

为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行如上文所述的摇杆数值的处理方法步骤。

为实现上述目的,本发明还提供一种游戏设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行如上文所述的摇杆数值的处理方法步骤。

本发明的一种摇杆数值的处理方法,具有以下有益效果:

1)让视角控制更加友好:针对快速转身、小范围调整方向、枪支瞄准等场景分别提供快速、慢速、极慢速三种不同的视角转动速度。

2)针对枪支瞄准等精细调整视角的场景,本专利提供了前所未有的数值处理手段,在原理上有重大突破,使瞄准体验有大幅度提升。

3)增强了游戏设备的总体体验。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为根据本发明的摇杆数值的处理方法流程图;

图2为根据本发明的根据摇杆偏移量计算模拟触点的移动增量流程图;

图3为根据本发明的摇杆理论数值分布图和摇杆理想数据分布图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1为根据本发明的摇杆数值的处理方法流程图,下面将参考图1,对本发明的摇杆数值的处理方法进行详细描述。

首先,在步骤101,上报摇杆数值并对腰杆数值进行预处理。该步骤中,对数据预处理包括去抖等。

在步骤102,根据摇杆偏移量计算模拟触点的移动增量。

图2为根据本发明的根据摇杆偏移量计算模拟触点的移动增量流程图,下面将参考图2,对计算模拟触点的移动增量进行详细描述。

在步骤201,将摇杆偏移量划分为大、中、小三个区间,并分别标识为第一区间、第二区间和第三区间,这样,三个不同的视角转动速度可以定义不同的区间。

在步骤202,如果当前偏移量在第一区间,则按公式funca计算移动增量。第一区间代表大偏移量区间,funca代表大角度转动视角场景对应的移动增量,计算公式为:

funa=d*viewspeed;

其中,d为偏移量,viewspeed为预设的视角速度;viewspeed可由用户根据实际情况进行调整,参考取值范围[3,30]。

在步骤203,如果当前偏移量在第二区间,则按公式funcb计算移动增量。第二区间代表微调区间,funcb代表小角度转动视角场景对应的移动增量,计算公式为:

funcb=fprecision*(d+800)/1000;

其中,d为偏移量,fprecision为微调精度,参考取值范围[1.0,3.0]。

在步骤204,如果当前偏移量在第三区间,则按公式funcc计算移动增量。第三区间代表精调区间,funcc代表精调视角场景(如枪支瞄准)对应的移动增量,计算公式为:

funcc=fprecision*d/l;

其中,l为取值常量,l取值越大视角转动越慢,可根据实际调试效果调整,参考取值范围[800,1500]。

在步骤205,最终移动增量的输出:如果本次移动增量绝对值大于1,则输出其整数部分,否则把移动增量累加。移动增量的累加只对偏移量在第三区间的情况生效,属于精调视角的后半部分。

在该步骤中,移动增量的累加,针对不同场景下用户的不同操作需求,可以考虑以下策略:

1)当d=(800,1000],a=d*viewspeed;

2)当d=(300,800],a=fprecision*(d+800)/1000;

3)当d=(0,300],a’=fprecision*d/800;

如果a’>1.0,a=a’

否则a+=a’(累计增量)

4)当d=0,触点抬起。

其中,viewspeed表示视野移动速度,fprecision表示调整精度,均由用户设定,a’为本次计算的临时移动增量,a为累计增量。

a+=a’等价于:a=a+a’,这就是移动增量的计算方法。例如当前a=0,并有连续10次偏移量输入(在0~300区间),假设10次计算出来的a’都是0.1,那么a的值是这样变化的:

第1次输入后:a=a+a’=0+0.1=0.1

第2次输入后:a=a+a’=0.1+0.1=0.2

第3次输入后:a=a+a’=0.2+0.1=0.3

第4次输入后:a=a+a’=0.3+0.1=0.4

第5次输入后:a=a+a’=0.4+0.1=0.5

第6次输入后:a=a+a’=0.5+0.1=0.6

第7次输入后:a=a+a’=0.6+0.1=0.7

第8次输入后:a=a+a’=0.7+0.1=0.8

第9次输入后:a=a+a’=0.8+0.1=0.9

第10次输入后:a=a+a’=0.9+0.1=1.0

可以看到,前9次输入得到的累加移动增量都小于1,因此输出的移动增量为0;而第10次输入后,得到的累加移动增量刚好等于1,此时会输出的移动增量是1(像素)。

在步骤103,根据模拟触点的当前位置和移动增量计算下一时刻的模拟触点位置。该步骤中,本发明生效的条件是以“根据摇杆数值模拟触点来控制视角”为背景。

在摇杆事件转换成触摸事件过程中,经过本发明的摇杆数值的处理方法处理的摇杆数值模拟触点来控制视角,用户在瞄准的时候可以更加准确地瞄准目标。

图3为根据本发明的摇杆理论数值分布图和摇杆理想数据分布图,如图3所示,摇杆数据由{x,y}坐标构成,x与y正交,其理论可能的取值组合在二维平面上的分布是正方形。而一般摇杆根部成球状,理想的摇杆数据分布是正圆。工作时摇杆定时上报当前位置,上报数值与所在位置成线性关系。

视野模式下模拟的是一个自由的触点,从预先设定的位置出发,然后根据摇杆每次上报的坐标(x,y)计算出本次的触点增量,这个增量与上一时刻触点的位置共同决定触点下一个时刻的位置。值得注意的是,这个增量也是二维的。考虑到x与y的对等性,我们在分别计算其增量时的处理方法也是完全一致的。因此下面的讨论以x为例,y不再赘述。

摇杆的数值范围不尽相同,下面以0~2000为例说明本专利的实现方法:

设x为某次上报的x值,d=x-1000表示摇杆在x轴上的偏移量,a为根据d计算出来的模拟触点的移动增量。此时视角的策略转换成了对a值的计算。

针对不同场景下用户的不同操作需求,可以考虑以下策略:

1)当d=(800,1000],a=d*viewspeed;

2)当d=(300,800],a=fprecision*(d+800)/1000;

3)当d=(0,300],a’=fprecision*d/800;

如果a’>1.0,a=a’

否则a+=a’(累计增量)

4)当d=0,触点抬起。

其中viewspeed表示视野移动速度,fprecision表示调整精度,均由用户设定。

有必要对不同区间的效果预期作简要说明:

区间(800,1000]:视角快速移动,满足较大视角移动场景;

区间(300,800]:视角微调,满足小范围微调视角场景;

区间(0,300]:视角精细调整,满足枪支瞄准等需要精细调整视角的场景;

区间[0,0]:视角停止转动。

需要特别说明的是(0,300)的区间,a’=fprecision*d/800中的800需要根据实际效果来调整,其值越大,调整越精细。其中最有价值的是当增量不足1.0时进行累加,这样做的效果是:虽然本次上报的数值未使触点位置立即发生移动,但是多次上报后会因累计增量大于1.0而使触点移动0一个像素。这样用户就可以在瞄准的时候精确瞄准目标了。

上述几个区间的具体划分可根据实际情况调整,并非一定要划分成上例中的数值。

本发明还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行如上文所述的摇杆数值的处理方法步骤。

本发明还提供一种游戏设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行如上文所述的摇杆数值的处理方法步骤。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1