轨迹提示方法和装置、存储介质及电子装置与流程

文档序号:21036108发布日期:2020-06-09 20:26阅读:194来源:国知局
轨迹提示方法和装置、存储介质及电子装置与流程

本发明涉及计算机领域,具体而言,涉及一种轨迹提示方法和装置、存储介质及电子装置。



背景技术:

在虚拟桌球游戏中,通常可以在击打白球前,通过显示辅助线的形式显示白球在被击打后的运动轨迹。辅助线通常为通过模拟白球被击打后的运动轨迹得到。

相关技术中,在获取辅助线的过程中,需要对白球的碰撞进行检测。而在检测过程中,通常需要在每一帧都对白球与其他每一个球或者每一条边进行检测,检测的工作量巨大,造成生成辅助线的效率低。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种轨迹提示方法和装置、存储介质及电子装置,以至少解决相关技术中辅助线生成效率低的技术问题。

根据本发明实施例的一个方面,提供了一种轨迹提示方法,包括:获取对虚拟桌球游戏的客户端中所呈现的人机交互界面执行操作所触发的调整指令,其中,所述调整指令用于调整对虚拟桌面控制区域中的目标碰撞球所施加的控制操作;响应所述调整指令,从与所述虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与所述目标碰撞球产生相交的目标网格;对所述目标网格进行碰撞检测,得到碰撞检测结果,其中,所述碰撞检测用于检测与所述目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;根据所述碰撞检测结果生成所述目标碰撞球对应的目标运动轨迹;在所述客户端上显示所述目标运动轨迹。

根据本发明实施例的另一方面,还提供了一种轨迹提示装置,包括:获取单元,用于获取对虚拟桌球游戏的客户端中所呈现的人机交互界面执行操作所触发的调整指令,其中,所述调整指令用于调整对虚拟桌面控制区域中的目标碰撞球所施加的控制操作;第一确定单元,用于响应所述调整指令,从与所述虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与所述目标碰撞球产生相交的目标网格;检测单元,用于对所述目标网格进行碰撞检测,得到碰撞检测结果,其中,所述碰撞检测用于检测与所述目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;生成单元,用于根据所述碰撞检测结果生成所述目标碰撞球对应的目标运动轨迹;显示单元,用于在所述客户端上显示所述目标运动轨迹。

根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述轨迹提示方法。

根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的轨迹提示方法。

在本发明实施例中,采用获取对虚拟桌球游戏的客户端中所呈现的人机交互界面执行操作所触发的调整指令,其中,所述调整指令用于调整对虚拟桌面控制区域中的目标碰撞球所施加的控制操作;响应所述调整指令,从与所述虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与所述目标碰撞球产生相交的目标网格;对所述目标网格进行碰撞检测,得到碰撞检测结果,其中,所述碰撞检测用于检测与所述目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;根据所述碰撞检测结果生成所述目标碰撞球对应的目标运动轨迹;在所述客户端上显示所述目标运动轨迹的方式,由于在上述方式中,在对目标碰撞球进行碰撞检测的过程中,是将目标碰撞球和与目标碰撞球相交的目标网格进行碰撞检测,大大减少了碰撞检测过程中的检测次数与检测工作量,提高了碰撞检测的效率,进一步提高了生成辅助线的效率。进而解决了相关技术中辅助线生成效率低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的轨迹提示方法的应用环境的示意图;

图2是根据本发明实施例的一种可选的轨迹提示方法的流程示意图;

图3是根据本发明实施例的一种可选的轨迹提示方法的示意图;

图4是根据本发明实施例的另一种可选的轨迹提示方法的示意图;

图5是根据本发明实施例的又一种可选的轨迹提示方法的示意图;

图6是根据本发明实施例的又一种可选的轨迹提示方法的示意图;

图7是根据本发明实施例的又一种可选的轨迹提示方法的示意图;

图8是根据本发明实施例的又一种可选的轨迹提示方法的示意图;

图9是根据本发明实施例的又一种可选的轨迹提示方法的示意图;

图10是根据本发明实施例的又一种可选的轨迹提示方法的示意图;

图11是根据本发明实施例的又一种可选的轨迹提示方法的示意图;

图12是根据本发明实施例的又一种可选的轨迹提示方法的示意图;

图13是根据本发明实施例的一种可选的轨迹提示装置的结构示意图;

图14是根据本发明实施例的一种可选的电子装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例的一个方面,提供了一种轨迹提示方法,可选地,作为一种可选的实施方式,上述轨迹提示方法可以但不限于应用于如图1所示的环境中。

图1中用户102与用户设备104之间可以进行人机交互。用户设备104中包含有存储器106,用于存储交互数据、处理器108,用于处理交互数据。用户设备104可以通过网络110与服务器112之间进行数据交互。服务器112中包含有数据库114,用于存储交互数据、处理引擎116,用于处理交互数据。

用户设备104可以获取上述调整指令,响应上述调整指令,从与上述虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与上述目标碰撞球产生相交的目标网格;对上述目标网格进行碰撞检测,得到碰撞检测结果,其中,上述碰撞检测用于检测与上述目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;根据上述碰撞检测结果生成上述目标碰撞球对应的目标运动轨迹;在上述客户端上显示上述目标运动轨迹。通过上述方法,从而可以减少生成辅助线的过程中的碰撞检测的工作量,提高生成辅助线的效率。

可选地,上述用户设备104可以但不限于为手机、平板电脑、笔记本电脑、pc机等终端,上述网络110可以包括但不限于无线网络或有线网络。其中,该无线网络包括:wifi及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器可以包括但不限于任何可以进行计算的硬件设备。上述客户端可以但不限于为安装在终端上的软件,还可以为软件中运行的网页或插件等等。

可选地,作为一种可选的实施方式,如图2所示,上述轨迹提示方法包括:

s102,获取对虚拟桌球游戏的客户端中所呈现的人机交互界面执行操作所触发的调整指令,其中,调整指令用于调整对虚拟桌面控制区域中的目标碰撞球所施加的控制操作;

s104,响应调整指令,从与虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与目标碰撞球产生相交的目标网格;

s106,对目标网格进行碰撞检测,得到碰撞检测结果,其中,碰撞检测用于检测与目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;

s108,根据碰撞检测结果生成目标碰撞球对应的目标运动轨迹;

s110,在客户端上显示目标运动轨迹。

可选地,上述轨迹提示方法可以但不限于应用于游戏领域,例如以软件形式可安装在终端上的游戏,或者通过网页运行的网页游戏,或者以插件运行的游戏,或者云游戏等等。

以终端上运行的游戏为例,终端上可以安装客户端,客户端上运行有虚拟桌球游戏。客户端显示有人机交互界面。在人机交互界面上获取调整指令,然后响应调整指令,从与虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与目标碰撞球产生相交的目标网格;对目标网格进行碰撞检测,得到碰撞检测结果,其中,碰撞检测用于检测与目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;根据碰撞检测结果生成目标碰撞球对应的目标运动轨迹;在客户端上显示目标运动轨迹,目标运动轨迹为虚拟桌球游戏中的辅助线。显示结果可以如图3所示。

通过上述方法,提高了生成虚拟桌球游戏中的辅助线的效率。

可选地,本方案中在获取调整指令的过程中,可以通过人机交互界面所接收到的触摸指令来获取。如,用户可以触摸人机交互界面,来控制虚拟桌球游戏中的击球杆的方向与击球杆的击球力的大小,生成调整指令。上述触摸操作可以为点击、长按、滑动、拖动等任何操作。客户端在接收到上述调整指令后,可以确定虚拟桌面网格集合,虚拟桌面可以为虚拟桌球游戏中的桌球球面,将桌球球面进行切割,得到多个网格,切割方法可以为均分,将虚拟桌面切割成相同大小的多个网格,或者多个大小不同的网格。多个网格中包括了目标网格。以网格大小相同为例,每一个网格都可以记录下与该网格相交的对象碰撞球的球信息与对象碰撞边的边信息。对象碰撞球可以为除白球之外的球,对象碰撞边为虚拟球桌的边,或者为边的一部分。目标网格与目标碰撞球相交,目标碰撞球为被球杆击打的球,一般为白球。对目标网格进行碰撞检测,可以确定出目标碰撞球的目标运动轨迹。然后,显示目标运动轨迹,从而显示出击球过程中的辅助线。

可选地,本方案中在获取到调整指令后,还可以确定目标碰撞求的模拟运动轨迹。模拟运动轨迹为客户端在接收到调整指令后,在确定了将被施加到目标碰撞球上的力的大小与方向之后,模拟目标碰撞球受该力的影响运动的轨迹。模拟过程是虚拟的过程,客户端的人机交互界面上不会显示目标碰撞球进行了运动。在模拟过程中,目标碰撞球的模拟运动轨迹可能为曲线或者直线。原因为目标碰撞球在受力时,可能携带有初始角速度。初始角速度为控制目标碰撞球旋转的力。或者,目标碰撞球可能与对象碰撞边进行碰撞,目标碰撞球在与对象碰撞边碰撞之后,模拟运动轨迹为曲线。若是目标碰撞球的模拟运动轨迹为曲线,则执行根据调整指令确定目标网格,进一步确定目标运动轨迹的步骤。若是模拟运动轨迹为直线或者折线,则直接将模拟运动轨迹确定为目标运动轨迹。

在确定模拟运动轨迹是否为曲线的过程中,可以确定是否有施加到目标碰撞球上的旋转角速度。旋转角速度会造成对象碰撞球在运动的过程中偏转。若是没有旋转角速度,则判断对象碰撞球的首次碰撞是与对象碰撞球碰撞还是与对象碰撞边碰撞,若是与对象碰撞球碰撞,则模拟运动轨迹为直线,或者折线,若是与对象碰撞边碰撞,则模拟运动轨迹为曲线。

可选地,本方案中在对目标网格进行碰撞检测,得到碰撞检测结果的过程中,需要检测目标碰撞球与对象碰撞球产生了碰撞还是与对象碰撞边产生了碰撞。

在检测是否与对象碰撞边发生碰撞时,获取与目标网格相交的对象碰撞边的边信息,其中,边信息中包括对象碰撞边的第一端点的第一位置与对象碰撞边的第二端点的第二位置;获取目标碰撞球的目标位置;在目标位置与第一位置形成的第一向量和目标位置与第二位置形成的第二向量的乘积大于零,且目标位置与对象碰撞边的距离小于r的情况下,确定目标碰撞球与对象碰撞边发生了碰撞,其中,r为目标碰撞球的半径;将目标碰撞球的轨迹点确定为碰撞检测结果。

可选地,上述边信息可以为虚拟球桌位于目标网格中的部分,该部分为虚拟球桌的一条边的一段。边信息中保存有目标网格中边的两个端点的位置信息。若是检测到目标碰撞球与对象碰撞边发生了碰撞。

在检测是否与对象碰撞球发生碰撞时,获取与目标网格相交的对象碰撞球的球信息,其中,球信息中包括对象碰撞球的第三位置;获取目标碰撞球的目标位置;在第三位置与目标位置的距离小于2r的情况下,确定目标碰撞球与对象碰撞球发生了碰撞,其中,r为目标碰撞球的半径;将目标碰撞球的轨迹点确定为碰撞检测结果。

上述轨迹点可以为在模拟目标碰撞球球运动的过程中,每隔预定时长对目标碰撞球的位置进行采样,得到的采样点。

通过上述方法,将目标碰撞球与对象碰撞球和对象碰撞边进行了碰撞检测,可以确定目标碰撞球在碰撞后的运动轨迹。

可选地,在获取上述采样点的过程中,若是在获取到一个目标碰撞球的位置后,该目标碰撞球的位置与上一个采样点的位置距离小于目标碰撞球的半径的二倍,则该目标碰撞球的位置不作为采样点。在预定时长后,进行下一次获取目标碰撞球的位置。若是获取到目标碰撞球的位置后,该目标碰撞球的位置与上一个采样点的位置距离大于或等于目标碰撞球的半径的二倍,则将该目标碰撞球的位置确定为一个采样点的位置。目标碰撞球的初始位置可以为第一个轨迹点。

若是获取到目标碰撞球的轨迹点之后,可以将轨迹点使用线段连接,得到目标运动轨迹。在客户端上可以显示上述目标运动轨迹。

可选地,在获取到上述轨迹点后,还可以对轨迹点进行二次重采样。获取碰撞检测结果中的轨迹点的目标数量;在目标数量大于第一阈值的情况下,从轨迹点中提取n个点作为新的轨迹点,其中,n根据运行客户端的终端的性能确定,n为正整数,n小于目标数量;根据新的轨迹点生成目标运动轨迹。

可选地,上述终端的性能可以包括终端的硬件的运算能力等。

可选地,本方案中还可以通过粗调与细调进一步降低生成辅助线过程中的运算量。如,若是粗调的情况,则在客户端上显示目标运动轨迹之前,接收绘制请求,绘制请求用于请求显示目标运动轨迹,不立即对绘制请求进行调整,而是等待预定时长,在预定时长内若是接收到新的绘制请求,则用新的绘制请求替换旧的绘制请求。若是没有接收到新的绘制请求,则执行原来的绘制请求。若是细调的情况,则实时响应绘制请求。

本方案的绘制请求可以包含在调整指令中,还可以为绘制请求与调整指令相同,或者分别获取绘制请求与调整指令。

以下以虚拟桌球游戏为例,对本方案中的方法进行举例说明。

桌球:又名“台球”,一项国际流行的室内体育运动,是一种用球杆在台上击球、依靠得分确定胜负的室内娱乐体育项目

击球:球杆瞄准白球(目标碰撞球)进行撞击,让白球撞击目标球(对象碰撞球)

击球力度:球杆撞击白球的力度

击球准心:球杆瞄准白球时,球杆末端撞击白球表面的位置

击球加塞:击球准心偏离白球表面的中心点,根据偏移的方位会产生不同方向的旋转角速度

击球辅助线:球杆瞄准白球后,根据球杆的力度、加塞情况,精确预测出白球碰球前的运动轨迹,轨迹由位置采样数据点连接成的线段集拼接而成。

实时物理模拟:在真实桌球对局中,通过物理计算,实时模拟出击球后白球的运动状态

物理帧:物理计算更新的时间间隔

逻辑帧:游戏逻辑更新的时间间隔

粗调:游戏中直接拖动球杆,较大刻度调节球杆方向

细调:利用刻度尺,小刻度微调球杆方向

移动端设备:泛指手持游戏设备,例如手机、游戏机等

本方案的人机交互界面可以如图4所示,用户可以通过击球杆404粗调击球方向,或者使用刻度尺406细调击球方向,还可以通过力度调节槽402调节击球力度,通过加塞区域408调整白球的偏转角速度。

若是添加了初始角速度,则白球运动轨迹为曲线。若是未添加初始角速度,则确定白球是否与球桌相碰撞。与球桌相碰撞后,白球的运动轨迹为曲线。若是既没有添加初始角速度,白球也没有与球桌相撞,则白球运动轨迹为直线。

图5为一种可选的加塞界面,界面中白球上的原点可以为击球该击球的位置,该位置可以通过加塞界面调整。不同的击球位置可以给白球添加不同的初始角速度。

图3为一种可选的不加塞的情况下的白球首次碰撞其他球的运动轨迹,白球的运动轨迹为直线。图6为一种可选的不加塞情况下白球与球桌的边碰撞的运动轨迹,碰撞后运动轨迹为曲线。图7为一种加塞的情况白球的运动轨迹,轨迹为曲线。

图8为一种本方案的流程图。如图8步骤s802到s842所示。本方案中首先根据步骤s802,将球桌虚拟化为n*n的网格,然后根据步骤s804,将球桌的碰撞边细分为m条,根据步骤806,记录每一个格子的与该格子相交的其他球(对象碰撞球)的球信息与球桌的边(对象碰撞边)的边信息。通过步骤s808接收绘制请求。绘制请求为用户在调整击球杆时产生的绘制请求。在s810绘制请求为粗调时,在s812预定时长内先不及时响应绘制请求,等待预定时长,若是预定时长内接收到新的粗调的绘制请求,则使用新的绘制请求替换旧的绘制请求,并在预定时长到时,s814响应新的绘制请求。例如在粗调的情况下,如图9所示,获取到请求1后,并不是直接响应,而是三个固定帧后响应请求1,获取到请求2后,间隔两个固定帧响应请求2。每一个请求在接收后,都需要等待预定时长,预定时长为该请求在接收到的时刻到达固定帧间隔的时刻的时间长度。每三帧检测一次,处于三帧期间的请求会被延长到检测时响应。期间接收到的多个请求,新请求会覆盖旧请求。如请求4覆盖请求3。细调的情况可以直接响应绘制请求。

在接收到绘制请求后,可以s816判断绘制请求是否加塞,若是加塞,则白球具备初始角速度。跳转到步骤s820,开始模拟轨迹。若是不加塞,则跳转到步骤s818,判断白球的首次碰撞对象为其他球还是桌球的边。在步骤s818,可以通过获取白球发生碰球的最短运动距离与碰边的最短运动距离来判断首次碰撞的对象。

碰球最短距离计算:如图10所示,运动球a2沿着a2d方向运动,在未来时刻t与另一球a1碰撞。a1f为球a1的半径。

根据余弦定理:

碰撞时a1d=2r(r为球半径),可以求出最短距离a2d

碰边最短运动距离计算:

如图11所示,白球ag方向运动,在未来时刻t与边cd进行碰撞碰撞点为f,利用向量叉积等于对应平行四边形的面积的性质,可以求出ae的距离。g为ae的中点。c和d是位于网格中的球桌的边的两个端点。c1和d1是计算中的辅助点,a为球心。公式如下:

首次碰撞为球的情况下,运用向量集合方法,如步骤s818中的方法,计算出目标运动轨迹。若是判断加塞,或者首次碰撞为边,则跳转至步骤s820开始模拟白球的运动轨迹。

初始化物理模拟参数,将力f、加塞s等输入参数转化成白球的初始运动状态,开始模拟;

力的单位向量:球杆朝向:

其中,x与y是球桌所在的坐标系的横纵坐标,用于表示力f的方向。

速度:

其中,a为加速度,f为白球的受力,需要计算摩擦力,t为一帧的时间,m为白球质量。

角速度:

w0=s(8)

每帧首先通过步骤s828更新白球一帧的时间间隔内的运动状态变化;

欧拉积分法:

st=s0+vδt(9)

其中,st为一帧时间后的运动状态,s0为一帧前的运动状态,v为速度,δt为一帧的时间。

摩擦力衰减:

时,滚动摩擦力

时,滑动摩擦力

ax=μ滚cosα,ay=μ滚sinα(12)

v′x=vx+axδt,v′y=vy+ayδt(14)

其中,w为白球角速度,r为白球半径,带有下角标x或下角标y的w或v表示在x轴或y轴上的投影分量。μ滚为滚动摩擦力的系数,a是摩擦力产生的加速度。

查询白球最新位置所处的格子,通过步骤s830获取格子所在的目标网格,并通过s832与s834进行彭边检查与碰球检查。

碰边检查时,如图12所示,时球与边才有可能碰撞,然后判断cd≤r时,则白球与边碰撞。其中,a和b为目标网格内球桌的边的两个端点,v是白球速度方向,c是白球的球心。

碰球检查时,白球与其他球的球心的距离小于2r,则两球相撞。r为球的半径。

通过步骤s836获取白球位置,每一帧采样一次,白球的初始位置为一个轨迹点,或采样点,每一帧采样一次后,若是获取到的白球的位置与上一个轨迹点的距离小于2r,则舍弃该次采样得到的白球位置,等待下一次采样。若是采样到的白球的位置与上一个轨迹点的距离大于或者等于2r,则将采样到的白球的位置确定为一个新的轨迹点。也就是说,当当前采样的位置与上一个轨迹点的位置大于或等于2r时,才将采样的位置确定为轨迹点。从而得到多个轨迹点。通过步骤s840判断运动是否结束。当白球速度为零时模拟运动提前结束。基于获取到的轨迹点二次重采样。针对部分低端机本身设备性能受限,基于实时fps来调整采样点的数量,牺牲辅助线的平滑度来降低绘制带来的性能消耗。通过步骤s824将二次重采样的数据生成轨迹数据,并执行步骤s826,绘制目标运动轨迹。即客户端的显示界面上显示目标运动轨迹。绘制时,将目标运动轨迹中的轨迹点使用线段相连,并绘制显示。

通过本实施例,通过上述方法,从而实现了提高生成辅助线的效率的效果。

作为一种可选的实施方案,在响应调整指令,从与虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与目标碰撞球产生相交的目标网格之前,方法还包括:

s1,在目标碰撞球的模拟运动轨迹为曲线的情况下,执行响应调整指令的步骤,其中,模拟运动轨迹为根据调整指令计算出的目标碰撞球的运动轨迹;

s2,在目标碰撞球的模拟运动轨迹为直线的情况下,将模拟运动轨迹确定为目标运动轨迹。

也就是说,本方案中在目标碰撞球的轨迹为曲线的情况下,才会响应调整指令对目标碰撞球进行碰撞检测,计算目标碰撞球的目标运动轨迹若是目标碰撞球的轨迹为直线或者曲线,则可以直接使用几何方法获取目标运动轨迹,实现了提高获取目标运动轨迹的灵活性的效果。

作为一种可选的实施方案,在目标碰撞球的模拟运动轨迹为曲线的情况下,执行响应调整指令的步骤之前,方法还包括:

s1,在调整指令指示目标碰撞球携带初始角速度的情况下,确定模拟运动轨迹为曲线;

s2,在调整指令指示目标碰撞球未携带初始角速度的情况下,在目标碰撞球的首次碰撞对象为对象碰撞边的情况下,确定模拟运动轨迹为曲线。

通过上述方法,从而让可以准确的判断出目标碰撞球的运动轨迹是否为曲线,实现了提高判断目标碰撞球的轨迹类型的效率的效果。

作为一种可选的实施方案,对目标网格进行碰撞检测,得到碰撞检测结果包括:

s1,获取与目标网格相交的对象碰撞边的边信息,其中,边信息中包括对象碰撞边的第一端点的第一位置与对象碰撞边的第二端点的第二位置;

s2,获取目标碰撞球的目标位置;

s3,在目标位置与第一位置形成的第一向量和目标位置与第二位置形成的第二向量的乘积大于零,且目标位置与对象碰撞边的距离小于r的情况下,确定目标碰撞球与对象碰撞边发生了碰撞,其中,r为目标碰撞球的半径;

s4,将目标碰撞球的轨迹点确定为碰撞检测结果。

通过上述方法,通过在进行碰撞检测的过程中,对目标网格中的对象碰撞边进行碰撞检测,大大减少了碰撞检测的运算量,提高了碰撞检测的效率。进一步提高了生成辅助线的效率。

作为一种可选的实施方案,对目标网格进行碰撞检测,得到碰撞检测结果包括:

s1,获取与目标网格相交的对象碰撞球的球信息,其中,球信息中包括对象碰撞球的第三位置;

s2,获取目标碰撞球的目标位置;

s3,在第三位置与目标位置的距离小于2r的情况下,确定目标碰撞球与对象碰撞球发生了碰撞,其中,r为目标碰撞球的半径;

s4,将目标碰撞球的轨迹点确定为碰撞检测结果。

通过上述方法,通过在进行碰撞检测的过程中,对目标网格中的对象碰撞球进行碰撞检测,大大减少了碰撞检测的运算量,提高了碰撞检测的效率。进一步提高了生成辅助线的效率。

作为一种可选的实施方案,根据碰撞检测结果生成目标碰撞球对应的目标运动轨迹包括:

s1,将碰撞检测结果中的轨迹点使用线段连接,得到目标运动轨迹。

通过本实施例,通过使用线段你连接轨迹点,得到目标运动轨迹,从而实现了提高显示目标运动轨迹的效率的效果。

作为一种可选的实施方案,在客户端上显示目标运动轨迹之前,方法还包括:

s1,在接收到绘制请求的情况下,等待预定时长,其中,在预定时长内,不响应绘制请求,绘制请求用于请求显示目标运动轨迹;

s2,在预定时长内获取到新的绘制请求的情况下,使用新的绘制请求替换旧的绘制请求。

通过上述方法,在获取到绘制请求后不立即响应绘制请求,而是等待预定时长对绘制请求进行绘制,实现了降低生成辅助线过程中的运算量的目的。

作为一种可选的实施方案,根据碰撞检测结果生成目标碰撞球对应的目标运动轨迹包括:

s1,获取碰撞检测结果中的轨迹点的目标数量;

s2,在目标数量大于第一阈值的情况下,从轨迹点中提取n个点作为新的轨迹点,其中,n根据运行客户端的终端的性能确定,n为正整数,n小于目标数量;

s3,根据新的轨迹点生成目标运动轨迹。

通过上述方法,通过二次重采样,实现了降低生成辅助线过程中的运算量,提高生成辅助线的效率的效果。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本发明实施例的另一个方面,还提供了一种用于实施上述轨迹提示方法的轨迹提示装置。如图13所示,该装置包括:

(1)获取单元1302,用于获取对虚拟桌球游戏的客户端中所呈现的人机交互界面执行操作所触发的调整指令,其中,调整指令用于调整对虚拟桌面控制区域中的目标碰撞球所施加的控制操作;

(2)第一确定单元1304,用于响应调整指令,从与虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与目标碰撞球产生相交的目标网格;

(3)检测单元1306,用于对目标网格进行碰撞检测,得到碰撞检测结果,其中,碰撞检测用于检测与目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;

(4)生成单元1308,用于根据碰撞检测结果生成目标碰撞球对应的目标运动轨迹;

(5)显示单元1310,用于在客户端上显示目标运动轨迹。

可选地,上述轨迹提示装置可以但不限于应用于游戏领域,例如以软件形式可安装的终端,或者设置在终端上。

以终端上运行的游戏为例,终端上可以安装客户端,客户端上运行有虚拟桌球游戏。客户端显示有人机交互界面。在人机交互界面上获取调整指令,然后响应调整指令,从与虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与目标碰撞球产生相交的目标网格;对目标网格进行碰撞检测,得到碰撞检测结果,其中,碰撞检测用于检测与目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;根据碰撞检测结果生成目标碰撞球对应的目标运动轨迹;在客户端上显示目标运动轨迹,目标运动轨迹为虚拟桌球游戏中的辅助线。显示结果可以如图3所示。

通过上述方法,提高了生成虚拟桌球游戏中的辅助线的效率。

可选地,本方案中在获取调整指令的过程中,可以通过人机交互界面所接收到的触摸指令来获取。如,用户可以触摸人机交互界面,来控制虚拟桌球游戏中的击球杆的方向与击球杆的击球力的大小,生成调整指令。上述触摸操作可以为点击、长按、滑动、拖动等任何操作。客户端在接收到上述调整指令后,可以确定虚拟桌面网格集合,虚拟桌面可以为虚拟桌球游戏中的桌球球面,将桌球球面进行切割,得到多个网格,切割方法可以为均分,将虚拟桌面切割成相同大小的多个网格,或者多个大小不同的网格。多个网格中包括了目标网格。以网格大小相同为例,每一个网格都可以记录下与该网格相交的对象碰撞球的球信息与对象碰撞边的边信息。对象碰撞球可以为除白球之外的球,对象碰撞边为虚拟球桌的边,或者为边的一部分。目标网格与目标碰撞球相交,目标碰撞球为被球杆击打的球,一般为白球。对目标网格进行碰撞检测,可以确定出目标碰撞球的目标运动轨迹。然后,显示目标运动轨迹,从而显示出击球过程中的辅助线。

可选地,本方案中在获取到调整指令后,还可以确定目标碰撞求的模拟运动轨迹。模拟运动轨迹为客户端在接收到调整指令后,在确定了将被施加到目标碰撞球上的力的大小与方向之后,模拟目标碰撞球受该力的影响运动的轨迹。模拟过程是虚拟的过程,客户端的人机交互界面上不会显示目标碰撞球进行了运动。在模拟过程中,目标碰撞球的模拟运动轨迹可能为曲线或者直线。原因为目标碰撞球在受力时,可能携带有初始角速度。初始角速度为控制目标碰撞球旋转的力。或者,目标碰撞球可能与对象碰撞边进行碰撞,目标碰撞球在与对象碰撞边碰撞之后,模拟运动轨迹为曲线。若是目标碰撞球的模拟运动轨迹为曲线,则执行根据调整指令确定目标网格,进一步确定目标运动轨迹的步骤。若是模拟运动轨迹为直线或者折线,则直接将模拟运动轨迹确定为目标运动轨迹。

在确定模拟运动轨迹是否为曲线的过程中,可以确定是否有施加到目标碰撞球上的旋转角速度。旋转角速度会造成对象碰撞球在运动的过程中偏转。若是没有旋转角速度,则判断对象碰撞球的首次碰撞是与对象碰撞球碰撞还是与对象碰撞边碰撞,若是与对象碰撞球碰撞,则模拟运动轨迹为直线,或者折线,若是与对象碰撞边碰撞,则模拟运动轨迹为曲线。

可选地,本方案中在对目标网格进行碰撞检测,得到碰撞检测结果的过程中,需要检测目标碰撞球与对象碰撞球产生了碰撞还是与对象碰撞边产生了碰撞。

在检测是否与对象碰撞边发生碰撞时,获取与目标网格相交的对象碰撞边的边信息,其中,边信息中包括对象碰撞边的第一端点的第一位置与对象碰撞边的第二端点的第二位置;获取目标碰撞球的目标位置;在目标位置与第一位置形成的第一向量和目标位置与第二位置形成的第二向量的乘积大于零,且目标位置与对象碰撞边的距离小于r的情况下,确定目标碰撞球与对象碰撞边发生了碰撞,其中,r为目标碰撞球的半径;将目标碰撞球的轨迹点确定为碰撞检测结果。

可选地,上述边信息可以为虚拟球桌位于目标网格中的部分,该部分为虚拟球桌的一条边的一段。边信息中保存有目标网格中边的两个端点的位置信息。若是检测到目标碰撞球与对象碰撞边发生了碰撞。

在检测是否与对象碰撞球发生碰撞时,获取与目标网格相交的对象碰撞球的球信息,其中,球信息中包括对象碰撞球的第三位置;获取目标碰撞球的目标位置;在第三位置与目标位置的距离小于2r的情况下,确定目标碰撞球与对象碰撞球发生了碰撞,其中,r为目标碰撞球的半径;将目标碰撞球的轨迹点确定为碰撞检测结果。

上述轨迹点可以为在模拟目标碰撞球球运动的过程中,每隔预定时长对目标碰撞球的位置进行采样,得到的采样点。

通过上述方法,将目标碰撞球与对象碰撞球和对象碰撞边进行了碰撞检测,可以确定目标碰撞球在碰撞后的运动轨迹。

可选地,在获取上述采样点的过程中,若是在获取到一个目标碰撞球的位置后,该目标碰撞球的位置与上一个采样点的位置距离小于目标碰撞球的半径的二倍,则该目标碰撞球的位置不作为采样点。在预定时长后,进行下一次获取目标碰撞球的位置。若是获取到目标碰撞球的位置后,该目标碰撞球的位置与上一个采样点的位置距离大于或等于目标碰撞球的半径的二倍,则将该目标碰撞球的位置确定为一个采样点的位置。目标碰撞球的初始位置可以为第一个轨迹点。

若是获取到目标碰撞球的轨迹点之后,可以将轨迹点使用线段连接,得到目标运动轨迹。在客户端上可以显示上述目标运动轨迹。

可选地,在获取到上述轨迹点后,还可以对轨迹点进行二次重采样。获取碰撞检测结果中的轨迹点的目标数量;在目标数量大于第一阈值的情况下,从轨迹点中提取n个点作为新的轨迹点,其中,n根据运行客户端的终端的性能确定,n为正整数,n小于目标数量;根据新的轨迹点生成目标运动轨迹。

可选地,上述终端的性能可以包括终端的硬件的运算能力等。

可选地,本方案中还可以通过粗调与细调进一步降低生成辅助线过程中的运算量。如,若是粗调的情况,则在客户端上显示目标运动轨迹之前,接收绘制请求,绘制请求用于请求显示目标运动轨迹,不立即对绘制请求进行调整,而是等待预定时长,在预定时长内若是接收到新的绘制请求,则用新的绘制请求替换旧的绘制请求。若是没有接收到新的绘制请求,则执行原来的绘制请求。若是细调的情况,则实时响应绘制请求。

本方案的绘制请求可以包含在调整指令中,还可以为绘制请求与调整指令相同,或者分别获取绘制请求与调整指令。

通过本实施例,通过上述方法,从而实现了提高生成辅助线的效率的效果。

作为一种可选的实施方案,装置还包括:

(1)第一执行单元,用于在响应调整指令,从与虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与目标碰撞球产生相交的目标网格之前,在目标碰撞球的模拟运动轨迹为曲线的情况下,执行响应调整指令的步骤,其中,模拟运动轨迹为根据调整指令计算出的目标碰撞球的运动轨迹;

(2)第二执行单元,用于在目标碰撞球的模拟运动轨迹为直线的情况下,将模拟运动轨迹确定为目标运动轨迹。

也就是说,本方案中在目标碰撞球的轨迹为曲线的情况下,才会响应调整指令对目标碰撞球进行碰撞检测,计算目标碰撞球的目标运动轨迹若是目标碰撞球的轨迹为直线或者曲线,则可以直接使用几何方法获取目标运动轨迹,实现了提高获取目标运动轨迹的灵活性的效果。

作为一种可选的实施方案,装置还包括:

(1)第二确定单元,用于在目标碰撞球的模拟运动轨迹为曲线的情况下,执行响应调整指令的步骤之前,在调整指令指示目标碰撞球携带初始角速度的情况下,确定模拟运动轨迹为曲线;

(2)第三确定单元,用于在调整指令指示目标碰撞球未携带初始角速度的情况下,在目标碰撞球的首次碰撞对象为对象碰撞边的情况下,确定模拟运动轨迹为曲线。

通过上述方法,从而让可以准确的判断出目标碰撞球的运动轨迹是否为曲线,实现了提高判断目标碰撞球的轨迹类型的效率的效果。

作为一种可选的实施方案,检测单元包括:

(1)第一获取模块,用于获取与目标网格相交的对象碰撞边的边信息,其中,边信息中包括对象碰撞边的第一端点的第一位置与对象碰撞边的第二端点的第二位置;

(2)第二获取模块,用于获取目标碰撞球的目标位置;

(3)第一确定模块,用于在目标位置与第一位置形成的第一向量和目标位置与第二位置形成的第二向量的乘积大于零,且目标位置与对象碰撞边的距离小于r的情况下,确定目标碰撞球与对象碰撞边发生了碰撞,其中,r为目标碰撞球的半径;

(4)第二确定模块,用于将目标碰撞球的轨迹点确定为碰撞检测结果。

通过上述方法,通过在进行碰撞检测的过程中,对目标网格中的对象碰撞边进行碰撞检测,大大减少了碰撞检测的运算量,提高了碰撞检测的效率。进一步提高了生成辅助线的效率。

作为一种可选的实施方案,检测单元包括:

(1)第三获取模块,用于获取与目标网格相交的对象碰撞球的球信息,其中,球信息中包括对象碰撞球的第三位置;

(2)第四获取模块,用于获取目标碰撞球的目标位置;

(3)第三确定模块,用于在第三位置与目标位置的距离小于2r的情况下,确定目标碰撞球与对象碰撞球发生了碰撞,其中,r为目标碰撞球的半径;

(4)第四确定模块,用于将目标碰撞球的轨迹点确定为碰撞检测结果。

通过上述方法,通过在进行碰撞检测的过程中,对目标网格中的对象碰撞球进行碰撞检测,大大减少了碰撞检测的运算量,提高了碰撞检测的效率。进一步提高了生成辅助线的效率。

作为一种可选的实施方案,生成单元包括:

(1)拼接模块,用于将碰撞检测结果中的轨迹点使用线段连接,得到目标运动轨迹。

通过本实施例,通过使用线段你连接轨迹点,得到目标运动轨迹,从而实现了提高显示目标运动轨迹的效率的效果。

作为一种可选的实施方案,装置还包括:

(1)等待单元,用于在客户端上显示目标运动轨迹之前,在接收到绘制请求的情况下,等待预定时长,其中,在预定时长内,不响应绘制请求,绘制请求用于请求显示目标运动轨迹;

(2)替换单元,用于在预定时长内获取到新的绘制请求的情况下,使用新的绘制请求替换旧的绘制请求。

通过上述方法,在获取到绘制请求后不立即响应绘制请求,而是等待预定时长对绘制请求进行绘制,实现了降低生成辅助线过程中的运算量的目的。

作为一种可选的实施方案,生成单元包括:

(1)第五获取模块,用于获取碰撞检测结果中的轨迹点的目标数量;

(2)提取模块,用于在目标数量大于第一阈值的情况下,从轨迹点中提取n个点作为新的轨迹点,其中,n根据运行客户端的终端的性能确定,n为正整数,n小于目标数量;

(3)生成模块,用于根据新的轨迹点生成目标运动轨迹。

通过上述方法,通过二次重采样,实现了降低生成辅助线过程中的运算量,提高生成辅助线的效率的效果。

根据本发明实施例的又一个方面,还提供了一种用于实施上述轨迹提示方法的电子装置,如图14所示,该电子装置包括存储器1402和处理器1404,该存储器1402中存储有计算机程序,该处理器1404被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,获取对虚拟桌球游戏的客户端中所呈现的人机交互界面执行操作所触发的调整指令,其中,调整指令用于调整对虚拟桌面控制区域中的目标碰撞球所施加的控制操作;

s2,响应调整指令,从与虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与目标碰撞球产生相交的目标网格;

s3,对目标网格进行碰撞检测,得到碰撞检测结果,其中,碰撞检测用于检测与目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;

s4,根据碰撞检测结果生成目标碰撞球对应的目标运动轨迹;

s5,在客户端上显示目标运动轨迹。

可选地,本领域普通技术人员可以理解,图14所示的结构仅为示意,电子装置也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图14其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图14中所示更多或者更少的组件(如网络接口等),或者具有与图14所示不同的配置。

其中,存储器1402可用于存储软件程序以及模块,如本发明实施例中的轨迹提示方法和装置对应的程序指令/模块,处理器1404通过运行存储在存储器1402内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的轨迹提示方法。存储器1402可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1402可进一步包括相对于处理器1404远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1402具体可以但不限于用于存储虚拟桌球游戏中的各项信息等信息。作为一种示例,如图14所示,上述存储器1402中可以但不限于包括上述轨迹提示装置中的获取单元1302、第一确定单元1304、检测单元1306、生成单元1308与显示单元1310。此外,还可以包括但不限于上述轨迹提示装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置1406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1406包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1406为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子装置还包括:显示器1408,用于显示人机交互界面与目标运动轨迹;和连接总线1410,用于连接上述电子装置中的各个模块部件。

根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,获取对虚拟桌球游戏的客户端中所呈现的人机交互界面执行操作所触发的调整指令,其中,调整指令用于调整对虚拟桌面控制区域中的目标碰撞球所施加的控制操作;

s2,响应调整指令,从与虚拟桌面控制区域匹配的虚拟桌面网格集合中,确定出与目标碰撞球产生相交的目标网格;

s3,对目标网格进行碰撞检测,得到碰撞检测结果,其中,碰撞检测用于检测与目标碰撞球产生碰撞的对象碰撞球和/或对象碰撞边;

s4,根据碰撞检测结果生成目标碰撞球对应的目标运动轨迹;

s5,在客户端上显示目标运动轨迹。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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