碰撞检测方法、装置、电子设备和计算机可读存储介质与流程

文档序号:36416376发布日期:2023-12-19 18:53阅读:52来源:国知局
碰撞检测方法与流程

本申请涉及游戏处理,具体涉及一种碰撞检测方法、装置、电子设备和计算机可读存储介质。


背景技术:

1、碰撞系统是各个游戏最基础的系统,一般用来判断两个对象是否发生接触,并在接触判定后执行一些后续逻辑,如枪战游戏中子弹与敌人的碰撞、如moba游戏中范围技能和敌人的交错等等。目前主流的碰撞检测算法,通常是通过对地图进行划分,将可能发生碰撞的物体放在一个空间分片中,并在可能发生碰撞的空间分片中,利用物体的包围盒对单位之间的碰撞进行检测。上述检测方法通常可以在单线程上运行,在计算中等数量的单位的碰撞时,能提供非常好的碰撞性能以及精准的碰撞结果。

2、然而,在部分游戏中,例如slg(simulation game,策略类游戏)游戏中,同时具有玩家单位和各种npc(non-player character,非玩家角色)单位,单位数量可能高达数百万级,通过上述单线程的检测方法,碰撞检测性能会急剧下降,而如果采用传统的多线程解决方案,则由于会存在大量单位的位置更新,容易出现数据竞争(date race),即多条线程都需要对某一个空间分片进行写入导致,因为有大量的单位会处于一个空间分片上,从而迫使大量的线程在该分片上持续处于等待状态,碰撞检测性能也不够理想。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种碰撞检测方法、装置、电子设备和计算机可读存储介质,用以解决现有的在对大量单位进行碰撞检测的过程中还存在的碰撞检测性能不够理想的技术问题。

2、第一方面,本申请提供一种碰撞检测方法,包括:

3、对待碰撞检测的游戏场景进行划分,得到至少两个场景区域分块,其中,所述场景区域分块配置有与预设的线程数量相对应的多个分配容器;

4、通过为所述游戏场景中待碰撞检测的目标对象配置的目标线程,确定所述目标对象的位置信息;

5、根据所述位置信息从所述场景区域分块中确定所述目标对象对应的目标区域分块,以对所述目标区域分块配置的与所述目标线程对应的目标分配容器进行更新;

6、对场景区域分块配置的分配容器中的目标对象进行碰撞检测,得到所述游戏场景中的碰撞检测结果。

7、第二方面,本申请提供一种碰撞检测装置,包括:

8、划分模块,用于对待碰撞检测的游戏场景进行划分,得到至少两个场景区域分块,其中,所述场景区域分块配置有与预设的线程数量相对应的多个分配容器;

9、确定模块,用于通过为所述游戏场景中待碰撞检测的目标对象配置的目标线程,确定所述目标对象的位置信息;

10、分配模块,用于根据所述位置信息从所述场景区域分块中确定所述目标对象对应的目标区域分块,以对所述目标区域分块配置的与所述目标线程对应的目标分配容器进行更新;

11、检测模块,用于对场景区域分块配置的分配容器中的目标对象进行碰撞检测,得到所述游戏场景中的碰撞检测结果。

12、第三方面,本申请还提供一种电子设备,所述电子设备包括:

13、一个或多个处理器;

14、存储器;以及

15、一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现上述提供的碰撞检测方法。

16、第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器进行加载,以执行上述提供的碰撞检测方法。

17、第五方面,本申请实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述提供的碰撞检测方法。

18、本申请实施例提供的碰撞检测方法,通过对游戏场景进行划分,得到多个场景区域分块,以将可能发生碰撞的物体在同一个场景区域分块进行检测,同时在为场景区域分块配置有与预设的线程数量相对应的多个分配容器后,保证了在利用对应目标线程完成对对象位置信息的更新后,可以将数据直接写入场景区域分块对应线程的分配容器中,而不会出现多个线程同时要求写入场景区域分块对应的同一空间片区而造成的数据竞争问题,从而提高了多单位游戏场景下碰撞检测的效率,提高了游戏场景中碰撞检测的性能。



技术特征:

1.一种碰撞检测方法,其特征在于,包括:

2.根据权利要求1所述的碰撞检测方法,其特征在于,所述根据所述位置信息从所述场景区域分块中确定所述目标对象对应的目标区域分块,以对所述目标区域分块配置的与所述目标线程对应的目标分配容器进行更新,包括:

3.根据权利要求1所述的碰撞检测方法,其特征在于,所述对场景区域分块配置的分配容器中的目标对象进行碰撞检测,得到所述游戏场景中的碰撞检测结果,包括:

4.根据权利要求1所述的碰撞检测方法,其特征在于,所述通过为所述游戏场景中待碰撞检测的目标对象配置的目标线程,确定所述目标对象的位置信息,包括:

5.根据权利要求1所述的碰撞检测方法,其特征在于,所述通过为所述游戏场景中待碰撞检测的目标对象配置的目标线程,确定所述目标对象的位置信息的步骤之前,所述方法还包括:

6.根据权利要求5所述的碰撞检测方法,其特征在于,所述根据所述对象数量以及预设的线程数量,为所述目标对象分配线程,以确定所述目标对象配置的目标线程,包括:

7.根据权利要求1所述的碰撞检测方法,其特征在于,所述通过为所述游戏场景中待碰撞检测的目标对象配置的目标线程,确定所述目标对象的位置信息的步骤之前,所述方法还包括:

8.根据权利要求1所述的碰撞检测方法,其特征在于,所述对待碰撞检测的游戏场景进行划分,得到至少两个场景区域分块的步骤之前,所述方法还包括:

9.根据权利要求1~8任一项所述的碰撞检测方法,其特征在于,所述对场景区域分块配置的分配容器中的目标对象进行碰撞检测,得到所述游戏场景中的碰撞检测结果的步骤之后,所述方法还包括:

10.一种碰撞检测装置,其特征在于,包括:

11.一种电子设备,其特征在于,所述电子设备包括:

12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至9任一项所述的碰撞检测方法。


技术总结
本申请提供一种碰撞检测方法、装置、电子设备和计算机可读存储介质,方法包括:对待碰撞检测的游戏场景进行划分,得到至少两个场景区域分块;通过为游戏场景中目标对象配置的目标线程,确定目标对象的位置信息;根据位置信息确定目标对象对应的目标区域分块,以对目标区域分块配置的与目标线程对应的目标分配容器进行更新;对场景区域分块配置的分配容器中的目标对象进行碰撞检测,得到游戏场景中的碰撞检测结果。本申请通过为场景区域分块配置多个分配容器后,避免出现多个线程同时要求写入场景区域分块对应的同一空间片区而造成的数据竞争问题,从而提高了多单位游戏场景下碰撞检测的效率,提高了游戏场景中碰撞检测的性能。

技术研发人员:胡泽勇,粟藩臣
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1