一种实现碰撞处理的方法及装置制造方法及图纸

技术编号:24695620 阅读:31 留言:0更新日期:2020-06-30 21:54
本申请实施例公开了一种实现碰撞处理的方法及装置,本申请实施例提供的实现碰撞处理的方法通过对目标对象和碰撞体的位置的获取和判断,将发生碰撞的碰撞体先进行位置的重定位,并根据原始移动方向和原始移动速度确定碰撞后的移动方向和移动速度,控制碰撞体按照碰撞后的移动方向和移动速度运动。由此可见,本申请实施例提供的方法根据碰撞体原始移动方向和原始移动速度确定碰撞后的移动方向和移动速度,可以在检测到碰撞后对碰撞体的移动进行正确的调整,提高碰撞体在碰撞后的运动的准确性。

【技术实现步骤摘要】
一种实现碰撞处理的方法及装置
本申请涉及互联网
,具体涉及一种实现碰撞处理的方法及装置。
技术介绍
随着互联网技术的快速发展,越来越多的应用程序在生活中得到使用,部分应用程序在使用的过程中具有需要移动的对象,用户可以移动需要移动的对象实现下一步的操作。在用户移动对象的过程中,可能会具有障碍物阻挡,此时用户所移动的对象会与障碍物发生碰撞,移动的对象就成为碰撞体,碰撞体的运动应当受到碰撞的影响。但是,在部分应用程序中,碰撞体在碰撞之后不能正确的进行移动方向的调整,导致碰撞体的移动具有偏差。
技术实现思路
有鉴于此,本申请实施例提供一种实现碰撞处理的方法及装置,能够对碰撞体在碰撞后的移动方向进行正确的调整。为解决上述问题,本申请实施例提供的技术方案如下:第一方面,本申请提供一种实现碰撞处理的方法,所述方法包括:获取目标对象的位置以及碰撞体的位置,所述目标对象为轴对齐四边形,所述碰撞体为轴对齐四边形或者圆形;根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体是否存在碰撞;如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体侵入所述目标对象的第一距离以及侵入方向,控制所述碰撞体向所述侵入方向的反方向移动所述第一距离;根据所述碰撞体的原始移动方向以及所述碰撞体的原始移动速度,确定所述碰撞体的碰撞后移动方向与碰撞后移动速度;按照所述碰撞体的碰撞后移动方向与碰撞后移动速度,控制所述碰撞体运动。可选的,所述方法还包括:>如果所述目标对象与所述碰撞体不存在碰撞,根据本次获取的所述碰撞体的位置与上一次获取的所述碰撞体的位置,确定所述碰撞体的移动范围;根据所述目标对象的位置,判断所述碰撞体的移动范围是否与所述目标对象存在重叠;如果不存在重叠,按照所述碰撞体的原始移动方向与原始移动速度,控制所述碰撞体运动;如果存在重叠,控制所述碰撞体向所述碰撞体的原始移动方向的反方向运动,直到所述目标对象与所述碰撞体存在碰撞,执行所述如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体侵入所述目标对象的第一距离以及侵入方向,控制所述碰撞体向所述侵入方向的反方向移动所述第一距离以及后续步骤。可选的,当所述目标对象与所述碰撞体均为轴对齐四边形,所述根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体是否存在碰撞,包括:根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体的横坐标范围是否存在重叠,所述目标对象与所述碰撞体的纵坐标范围是否存在重叠;如果所述目标对象与所述碰撞体的横坐标范围、所述目标对象与所述碰撞体的纵坐标范围均存在重叠,确定所述目标对象与所述碰撞体存在碰撞;如果所述目标对象与所述碰撞体的横坐标范围、所述目标对象与所述碰撞体的纵坐标范围不均存在重叠,确定所述目标对象与所述碰撞体不存在碰撞。可选的,当所述目标对象为轴对齐四边形,所述碰撞体为圆形,所述根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体是否存在碰撞,包括:根据所述目标对象的位置以及所述碰撞体的位置,计算所述目标对象的边上与所述碰撞体的圆心距离最近的目标点的坐标;计算所述目标点与所述碰撞体的圆心之间的距离,得到第二距离;如果所述第二距离小于或等于所述碰撞体的半径,确定所述目标对象与所述碰撞体存在碰撞;如果所述第二距离大于所述碰撞体的半径,确定所述目标对象与所述碰撞体不存在碰撞。可选的,所述如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体侵入所述目标对象的第一距离以及侵入方向,控制所述碰撞体向所述侵入方向的反方向移动所述第一距离,包括:如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体的半径与所述第二距离的差值,得到所述碰撞体侵入所述目标对象的第一距离;将所述碰撞体的圆心与所述目标点之间的方向矢量分别与标准方向的矢量进行点乘,将满足预设条件的点乘结果对应的标准方向确定为侵入方向;控制所述碰撞体向所述侵入方向的反方向移动所述第一距离。可选的,所述根据所述碰撞体的原始移动方向以及所述碰撞体的原始移动速度,确定所述碰撞体的碰撞后移动方向与碰撞后移动速度,包括:将所述碰撞体的原始移动方向矢量的横坐标轴分量与第一方向矢量的横坐标分量相乘,得到第一结果,如果所述第一结果小于零,将所述碰撞体的原始移动方向矢量的横坐标轴分量置零;所述第一方向矢量为所述碰撞体的碰撞点与中心点之间的方向矢量;所述碰撞点为在控制所述碰撞体向所述侵入方向的反方向移动所述第一距离之后,在所述目标对象的边上与所述碰撞体的中心点距离最近的点;将所述碰撞体的原始移动方向矢量的纵坐标轴分量与所述第一方向矢量的纵坐标分量相乘,得到第二结果,如果所述第二结果小于零,将所述碰撞体的原始移动方向矢量的纵坐标轴分量置零;根据变更后的原始移动方向矢量确定所述碰撞体的碰撞后移动方向;将所述碰撞体的原始移动速度确定为所述碰撞体的碰撞后移动速度。可选的,所述根据变更后的原始移动方向矢量确定所述碰撞体的碰撞后移动方向,包括:如果变更后的原始移动方向矢量的横坐标轴分量与纵坐标轴分量均置零,且当仅存在一个碰撞点时,将所述第一方向矢量的垂直方向确定为所述碰撞体的碰撞后移动方向。可选的,所述根据所述碰撞体的原始移动方向以及所述碰撞体的原始移动速度,确定所述碰撞体的碰撞后移动方向与碰撞后移动速度,包括:将所述碰撞体的原始移动方向的反方向确定为所述碰撞体的碰撞后移动方向;将所述碰撞体的原始移动速度确定为所述碰撞体的碰撞后移动速度。第二方面,本申请提供一种实现碰撞处理的装置,所述装置包括:获取单元,用于获取目标对象的位置以及碰撞体的位置,所述目标对象为轴对齐四边形,所述碰撞体为轴对齐四边形或者圆形;判断单元,用于根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体是否存在碰撞;重定位单元,用于如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体侵入所述目标对象的第一距离以及侵入方向,控制所述碰撞体向所述侵入方向的反方向移动所述第一距离;碰撞运动计算单元,用于根据所述碰撞体的原始移动方向以及所述碰撞体的原始移动速度,确定所述碰撞体的碰撞后移动方向与碰撞后移动速度;碰撞运动控制单元,用于按照所述碰撞体的碰撞后移动方向与碰撞后移动速度,控制所述碰撞体运动。可选的,所述装置还包括:移动范围确定单元,用于如果所述目标对象与所述碰撞体不存在碰撞,根据本次获取的所述碰撞体的位置与上一次获取的所述碰撞体的位置,确定所述碰撞体的移动范围;重叠判断单元,用于根据所述目标对象的位置,判断所述碰撞体的移动范围是否与所述目标对象存在重叠;运动控制单元,用于如果不存在重叠,按照所述碰撞体的原始移动方向与原始移动速度,控制所述碰撞体运动;移动单元本文档来自技高网...

【技术保护点】
1.一种实现碰撞处理的方法,其特征在于,所述方法包括:/n获取目标对象的位置以及碰撞体的位置,所述目标对象为轴对齐四边形,所述碰撞体为轴对齐四边形或者圆形;/n根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体是否存在碰撞;/n如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体侵入所述目标对象的第一距离以及侵入方向,控制所述碰撞体向所述侵入方向的反方向移动所述第一距离;/n根据所述碰撞体的原始移动方向以及所述碰撞体的原始移动速度,确定所述碰撞体的碰撞后移动方向与碰撞后移动速度;/n按照所述碰撞体的碰撞后移动方向与碰撞后移动速度,控制所述碰撞体运动。/n

【技术特征摘要】
1.一种实现碰撞处理的方法,其特征在于,所述方法包括:
获取目标对象的位置以及碰撞体的位置,所述目标对象为轴对齐四边形,所述碰撞体为轴对齐四边形或者圆形;
根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体是否存在碰撞;
如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体侵入所述目标对象的第一距离以及侵入方向,控制所述碰撞体向所述侵入方向的反方向移动所述第一距离;
根据所述碰撞体的原始移动方向以及所述碰撞体的原始移动速度,确定所述碰撞体的碰撞后移动方向与碰撞后移动速度;
按照所述碰撞体的碰撞后移动方向与碰撞后移动速度,控制所述碰撞体运动。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述目标对象与所述碰撞体不存在碰撞,根据本次获取的所述碰撞体的位置与上一次获取的所述碰撞体的位置,确定所述碰撞体的移动范围;
根据所述目标对象的位置,判断所述碰撞体的移动范围是否与所述目标对象存在重叠;
如果不存在重叠,按照所述碰撞体的原始移动方向与原始移动速度,控制所述碰撞体运动;
如果存在重叠,控制所述碰撞体向所述碰撞体的原始移动方向的反方向运动,直到所述目标对象与所述碰撞体存在碰撞,执行所述如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体侵入所述目标对象的第一距离以及侵入方向,控制所述碰撞体向所述侵入方向的反方向移动所述第一距离以及后续步骤。


3.根据权利要求1所述的方法,其特征在于,当所述目标对象与所述碰撞体均为轴对齐四边形,所述根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体是否存在碰撞,包括:
根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体的横坐标范围是否存在重叠,所述目标对象与所述碰撞体的纵坐标范围是否存在重叠;
如果所述目标对象与所述碰撞体的横坐标范围、所述目标对象与所述碰撞体的纵坐标范围均存在重叠,确定所述目标对象与所述碰撞体存在碰撞;
如果所述目标对象与所述碰撞体的横坐标范围、所述目标对象与所述碰撞体的纵坐标范围不均存在重叠,确定所述目标对象与所述碰撞体不存在碰撞。


4.根据权利要求1所述的方法,其特征在于,当所述目标对象为轴对齐四边形,所述碰撞体为圆形,所述根据所述目标对象的位置以及所述碰撞体的位置,判断所述目标对象与所述碰撞体是否存在碰撞,包括:
根据所述目标对象的位置以及所述碰撞体的位置,计算所述目标对象的边上与所述碰撞体的圆心距离最近的目标点的坐标;
计算所述目标点与所述碰撞体的圆心之间的距离,得到第二距离;
如果所述第二距离小于或等于所述碰撞体的半径,确定所述目标对象与所述碰撞体存在碰撞;
如果所述第二距离大于所述碰撞体的半径,确定所述目标对象与所述碰撞体不存在碰撞。


5.根据权利要求4所述的方法,其特征在于,所述如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体侵入所述目标对象的第一距离以及侵入方向,控制所述碰撞体向所述侵入方向的反方向移动所述第一距离,包括:
如果所述目标对象与所述碰撞体存在碰撞,计算所述碰撞体的半径与所述第二距离的差值,得到所述碰撞体侵入所述目标对象的第一距离;
将所述碰撞体的圆心与所述目标点之间的方向矢量分别与标准方向...

【专利技术属性】
技术研发人员:李鑫
申请(专利权)人:竞技世界北京网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1