CN107357563B - 对象移动方法和装置以及存储介质、电子装置 - Google Patents
对象移动方法和装置以及存储介质、电子装置 Download PDFInfo
- Publication number
- CN107357563B CN107357563B CN201710383748.8A CN201710383748A CN107357563B CN 107357563 B CN107357563 B CN 107357563B CN 201710383748 A CN201710383748 A CN 201710383748A CN 107357563 B CN107357563 B CN 107357563B
- Authority
- CN
- China
- Prior art keywords
- cell
- unit lattice
- communication information
- target
- adjacent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/577—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/58—Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
- H04N21/25883—Management of end-user data being end-user demographical data, e.g. age, family status or address
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/64—Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/61—Scene description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Databases & Information Systems (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种对象移动方法和装置以及存储介质、电子装置。该方法包括:获取操作指令,操作指令用于请求将目标对象从三维地图上的第一单元格移动到第二单元格,三维地图被划分成多个三维的单元格,每个单元格用于指示一个三维空间;获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,目标移动路径为从第一单元格到第二单元格的移动路径,目标连通信息用于指示每相邻的两个目标单元格是否连通,目标连通信息是预先缓存的信息;根据目标连通信息确定第一单元格与第二单元格是否连通;在连通时将目标对象从三维地图上的第一单元格移动到第二单元格。本发明解决了相关技术中将对象从一个位置移动到另一个位置的效率较低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种对象移动方法和装置以及存储介质、电子装置。
背景技术
现有的传统3D游戏引擎主要针对单机游戏或端游客户端开发。端游一般指客户端游戏,即是传统的依靠下载客户端在电脑上进行游戏的网络游戏。
从1992年第一款3D游戏问世以来,已经经过了多年的发展,相关技术发展已经比较成熟,有大量的商业化引擎涌现,比如BigWorld、Gamebryo、Unreal、Cry Engine等。
在国外,诸如游戏大国韩国,由于宽带网络服务较为发达,以及相关法律法规较为完善,游戏开发者可以把逻辑都放在客户端计算,网络游戏的服务器可以只作为一个数据交换节点存在。但是中国互联网起步较晚,并且国内互联网环境复杂,相关功能放在客户端极其容易被破解利用作弊,无法防范外挂的存在。因此要求游戏服务器承担起大部分的核心计算和数据维护功能,因此出现了服务器端如何处理3D场景管理和碰撞的问题。
同时随着大型多人在线角色扮演游戏(MMORPG)的发展,各大厂商都在游戏内引入了越来越多复杂的玩法,诸如原本即时战略游戏(RTS)才有的建筑建造,也被引入了大型多人在线角色扮演游戏(MMORPG)。这样的发展潮流,对大型多人在线角色扮演游戏(MMORPG)的客户端与服务器提出了更高的要求。
图1是现有技术的一种采用多边形网格(Polygon Mesh)的3D场景的描述技术的示意图,如图1所示,通过将模型对象分解成无数的小多边形,来对对象进行建模描述。其优势在于多边形的分解可以非常灵活,对于模型细节的描绘可以非常精确,是传统客户端3D引擎的一致选择。
由于多边形网格(Polygon Mesh)需要使用到大量的浮点数运算,对于服务器来说,性能损耗非常大。比如一些常见的物理引擎在移植到服务器后,单进程只能承载100~200百人左右。这对于需要支持海量用户玩法的大型多人在线角色扮演游戏(MMORPG)显然无法接受。
现有的3D游戏应用中,通常需要将角色对象从一个位置移动至另一个位置,角色对象能否进行位置移动取决于这两个位置之间是否连通,然而相关技术中确定两个位置之间是否连通通常采用动态连通性算法进行实时计算,角色对象每移动一个移动单位便需要计算该单位与其相邻的多个单位之间的连通性,直至角色对象从起点移动至终点,这种计算方式计算量大,且存在大量的重复计算,这样将会导致降低对两个位置之间是否连通的确定效率,进而导致将角色对象从一个位置移动到另一个位置的效率较低,严重影响游戏玩家的游戏体验。
针对上述相关技术中将对象从一个位置移动到另一个位置的效率较低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种对象移动方法和装置以及存储介质、电子装置,以至少解决相关技术中将对象从一个位置移动到另一个位置的效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种对象移动方法,包括:获取操作指令,其中,操作指令用于请求将目标对象从三维地图上的第一单元格移动到第二单元格,三维地图被划分成包括第一单元格和第二单元格在内的多个三维的单元格,每个单元格用于指示一个三维空间;获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,其中,多个三维的单元格包括每相邻的两个目标单元格,每相邻的两个目标单元格包括第一单元格和第二单元格,目标移动路径为从第一单元格到第二单元格的移动路径,目标连通信息用于指示每相邻的两个目标单元格是否连通,目标连通信息是预先缓存的信息;根据目标连通信息确定第一单元格与第二单元格是否连通;在确定出第一单元格与第二单元格连通的情况下,将目标对象从三维地图上的第一单元格移动到第二单元格。
根据本发明实施例的另一方面,还提供了一种对象移动装置,包括:第一获取单元,用于获取操作指令,其中,操作指令用于请求将目标对象从三维地图上的第一单元格移动到第二单元格,三维地图被划分成包括第一单元格和第二单元格在内的多个三维的单元格,每个单元格用于指示一个三维空间;第二获取单元,用于获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,其中,多个三维的单元格包括每相邻的两个目标单元格,每相邻的两个目标单元格包括第一单元格和第二单元格,目标移动路径为从第一单元格到第二单元格的移动路径,目标连通信息用于指示每相邻的两个目标单元格是否连通,目标连通信息是预先缓存的信息;确定单元,用于根据目标连通信息确定第一单元格与第二单元格是否连通;移动单元,用于在确定出第一单元格与第二单元格连通的情况下,将目标对象从三维地图上的第一单元格移动到第二单元格。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行本发明实施例中任意一种对象移动方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器通过所述计算机程序执行本发明实施例中任意一种对象移动方法。
在本发明实施例中,将三维地图划分成多个三维的单元格,每个单元格指示一个三维空间,在获取到用于请求将目标对象从第一单元格移动至第二单元格的操作指令之后,通过获取预先缓存好的从第一单元格到第二单元格的目标移动路径上的每相邻的两个目标单元格之间的目标连通信息来确定第一单元格与第二单元格之间是否连通,进而可以实现提高位置连通性判断效率的目的。进一步地,在确定第一单元格与第二单元格之间连通的情况下,将目标对象从第一单元格移动至第二单元格,可以实现快速地将目标对象从第一单元格移动至第二单元格的目的,进而可以解决相关技术中将对象从一个位置移动到另一个位置的效率较低的技术问题,达到缩短对象移动消耗时间,提高对象移动效率技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术的一种采用多边形网格(Polygon Mesh)的3D场景的描述技术的示意图;
图2是根据本发明实施例的对象移动方法的硬件环境的示意图;
图3是根据本发明实施例的一种可选的对象移动方法的流程图;
图4是根据本发明实施例的一种基于体素方案的3D场景示意图;
图5是根据本发明实施例的一种基于本发明中的3D场景建模方法对于建筑的建模示意图;
图6是根据本发明实施例的一种基于体素的连通性判断示意图;
图7是根据本发明实施例的一种连通性信息编码示意图;
图8是根据本发明实施例的一种可选的对象移动装置的示意图;
图9是根据本发明实施例的另一种可选的对象移动装置的示意图;
图10是根据本发明实施例的另一种可选的对象移动装置的示意图;
图11是根据本发明实施例的另一种可选的对象移动装置的示意图;
图12是根据本发明实施例的另一种可选的对象移动装置的示意图;
图13是根据本发明实施例的另一种可选的对象移动装置的示意图;
图14是根据本发明实施例的一种电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
网络游戏(Online Game),也称在线游戏,一般指多名玩家通过电脑网络互动娱乐的电子游戏。
动作游戏(Action Game),动作游戏是电子游戏中的一种,它强调玩家的反应能力和手眼的配合。往往存在多个技能连续配合释放,形成连击的形式的玩法。
即时战略游戏(RTS),英文全称Real-Time Strategy Game,是策略游戏的一种,游戏是即时进行的,而不是策略游戏多见的回合制。
角色扮演游戏(RPG),英文全称Role-Playing Game,是一种游戏类型。在游戏中,玩家扮演虚拟世界中的一个或者几个队员角色在特定场景下进行游戏。通常这类游戏都是由玩家扮演冒险者在游戏世界中漫游,而一路上的各种遭遇(如战斗、交谈、会见重要人物等)则是玩家人物成长及游戏进行的重要关键所在。
大型多人在线角色扮演游戏(MMORPG),英文全称Massive(或Massively)Multiplayer Online Role-Playing Game的缩写,是网络游戏的一种。
网络游戏客户端(Game Client),是指与网络游戏服务器相对应,为客户提供本地服务的程序。一般安装在普通的用户机上,需要与服务端互相配合运行。
网络游戏服务器(Game Server),是指与网络游戏客户端相对应,安装在IDC中,为网络游戏客户端提供数据转发与逻辑处理服务的软件程序。由于安装在玩家机器上的客户端容易被破解而被利用作弊,所以在网络游戏中,复杂与关键的逻辑,都需要在网络游戏服务器上进行计算。
体素(Voxel),即顾名思义是体积的像素。用来在三维空间中表示一个显示基本点的单位。类似于二维平面下的pixel(像素)。
实施例1
根据本发明实施例,提供了一种对象移动方法的方法实施例。
可选地,在本实施例中,上述对象移动方法可以应用于如图2所示的由服务器102和终端104所构成的硬件环境中。如图2所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的对象移动方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的对象移动方法也可以是由安装在其上的客户端来执行。
图3是根据本发明实施例的一种可选的对象移动方法的流程图,如图3所示,该方法可以包括以下步骤:
步骤S302,获取操作指令,其中,操作指令用于请求将目标对象从三维地图上的第一单元格移动到第二单元格,三维地图被划分成包括第一单元格和第二单元格在内的多个三维的单元格,每个单元格用于指示一个三维空间;
步骤S304,获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,其中,多个三维的单元格包括每相邻的两个目标单元格,每相邻的两个目标单元格包括第一单元格和第二单元格,目标移动路径为从第一单元格到第二单元格的移动路径,目标连通信息用于指示每相邻的两个目标单元格是否连通,目标连通信息是预先缓存的信息;
步骤S306,根据目标连通信息确定第一单元格与第二单元格是否连通;
步骤S308,在确定出第一单元格与第二单元格连通的情况下,将目标对象从三维地图上的第一单元格移动到第二单元格。
通过上述步骤S302至步骤S308,将三维地图划分成多个三维的单元格,每个单元格指示一个三维空间,在获取到用于请求将目标对象从第一单元格移动至第二单元格的操作指令之后,通过获取预先缓存好的从第一单元格到第二单元格的目标移动路径上的每相邻的两个目标单元格之间的目标连通信息来确定第一单元格与第二单元格之间是否连通,进而可以实现提高位置连通性判断效率的目的。进一步地,在确定第一单元格与第二单元格之间连通的情况下,将目标对象从第一单元格移动至第二单元格,可以实现快速地将目标对象从第一单元格移动至第二单元格的目的,进而可以解决相关技术中将对象从一个位置移动到另一个位置的效率较低的技术问题,达到缩短对象移动消耗时间,提高对象移动效率技术效果。
在步骤S302提供的技术方案中,目标对象是可以预定场景内移动的对象,具有长、宽、高等属性。可选地,目标对象移动的预定场景可以为地图,该地图可以是三维地图。
作为一个可选的示例,在地图为三维地图的情况下,地图中除水平地面外,还可以包括山地、建筑物等,山地、建筑可以高于水平地面,具有一定的高度,并且目标对象还可以在水平地面和建筑(或山地)之间移动。为了准确确定目标对象在地图中的移动信息,可以将地图中的水平地面、山地、以及建筑划分为多个三维的单元格,其中,每个单元格可以用于指示一个三维空间。
可选地,在三维地图中,目标对象可以在高度相同的单元格上移动,还可以在高度不同的单元格上移动。
作为一个可选的示例,目标对象可以在水平地面上移动;目标对象可以在高度相同的建筑或山地上移动;目标对象可以从水平地面移动到高于水平地面的建筑或山地上;目标对象可以从高于水平地面的建筑或山地移动到水平地面上;目标对象可以在高度不同的水平地面、建筑、以及上地上移动。
可选地,在三维地图被划分为多个三维的单元格的情况下,将目标对象在三维地图上移动的起点确定为第一单元格,将目标对象在三维地图上移动的终点确定为第二单元格。
可选地,本发明实施例中的操作指令可以用于请求将目标对象从第一单元格移动至第二单元格,其中,需要说明的是,第一单元格和第二单元格可以为三维地图中的任意单元格。本发明实施例对操作指令的触发条件并不做具体限定,例如,在游戏应用中,当游戏玩家在游戏中执行点击鼠标、或者拖动角色对象移动等类似操作时,可以触发生成操作指令。需要说明的是,本发明实施例还可以通过其他操作触发生成操作指令,此处不再一一举例说明。
在步骤S304提供的技术方案中,在获取到操作指令之后,本发明实施例可以对其进行响应,响应过程可以包括首先确定从第一单元格到第二单元格的移动路径,并将该移动路径确定为目标移动路径,然后再确定在该目标移动路径上的目标单元格,然后可以确定在该目标移动路径上每相邻的两个目标单元格之间的连通信息,其中,在目标移动路径上每相邻的两个目标单元格之间的连通信息可以称为目标连通信息,该目标连通信息可以用于指示每相邻的两个目标单元格是否连通,且该目标连通信息是预先缓存的信息。
首先需要说明的是,本发明实施例中从第一单元格到第二单元格的目标移动路径可以有一条,也可以有多条,本发明实施例对从第一单元格到第二单元格的目标移动路径的确定方法不做具体限定。在确定从第一单元格到第二单元格的目标移动路径之后,目标移动路径上每相邻的两个单元格包括第一单元格和第二单元格,而且目标移动路径上第一单元格与第二单元格之间的目标单元格可以为一个,也可以为多个,经由这些目标单元格即可以组成从第一单元格移动至第二单元格的移动路径。
还需要说明的是,目标移动路径上每相邻的两个目标单元格是否连通可以通过预先缓存的每相邻的两个目标单元格之间的连通信息所指示。
作为一个可选的示例,目标移动路径上第一单元格和第二单元格之间的目标单元格可以包括单元格1、单元格2、以及单元格3,其中,单元格2分别与单元格1和单元格3相邻,其中,单元格1作为第一单元格,单元格3作为第二单元格,通过预先缓存的单元格1与单元格2之间的连通信息,可以确定单元格1与单元格2之间是否连通;若确定单元格1与单元格2连通,则目标对象可以从单元格1移动至单元格2;进一步地,若通过预先缓存的单元格2与单元格3之间的连通信息可以确定单元格2与单元格3之间连通,则目标对象可以从单元格2移动至单元格3,综上说明单元格1至单元格3之间连通,目标对象可以从单元格1移动至单元格3。
可选地,三维地图上任意两个相邻的单元格之间的连通信息可以预先存储在预设数据库中,在需要获取目标移动路径上每相邻的两个目标单元格之间的连通信息的情况下,可以直接从预设数据库中直接获取,这样可以极大地减少实时计算单元格之间连通性的计算量,进而达到提高确定两个位置之间是否连通的效率的效果。
作为一种可选的实施例,本发明实施例可以在获取操作指令之前,缓存三维地图中的多个三维的单元格的连通信息,其中,连通信息包括:多个三维的单元格中任意两个相邻的单元格之间的连通信息。
此处首先需要说明的是,三维地图中的多个三维的单元格中任意两个相邻的单元格可以是同一层上的两个相邻的单元格,也可以是位于相邻层上的两个相邻的单元格,还可以是位于不同层上的两个相邻的单元格。需要说明的是,位于相邻层上的两个相邻的单元格分别位于三维地图中相邻的两层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻;位于不同层上的两个相邻的单元格分别位于三维地图中不同的层,不同的层之间相隔至少一层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻。
可选地,三维地图中的多个三维的单元格的连通信息的具体的缓存过程可以描述为:对于多个三维的单元格中的每个单元格执行以下步骤,其中,每个单元格在执行以下步骤中被记为当前单元格:获取当前单元格与在当前层上与当前单元格相邻的单元格的连通信息,以及当前单元格与在相邻层上与当前单元格相邻的单元格的连通信息,其中,当前层为当前单元格在三维地图中所在的层,相邻层为三维地图中与当前层相邻的层。
作为一个可选的示例,目标移动路径上的目标单元格可以包括单元格1、单元格2、以及单元格3,其中,单元格2分别与单元格1和单元格3相邻,单元格1作为第一单元格,单元格3作为第二单元格,预设数据库中可以预先存储单元格1与单元格2之间的连通信息A,以及单元格2与单元格3之间的连通信息B。在需要判断第一单元格与所述第二单元格之间是否连通的情况下,可以直接在预设数据库中获取单元格1与单元格2之间的连通信息A,以及单元格2与单元格3之间的连通信息B。
需要说明的是,三维地图上任意一个当前单元格与其相邻的单元格之间的连通信息可以包括当前单元格与在当前层上与当前单元格相邻的单元格的连通信息,以及当前单元格与在相邻层上与当前单元格相邻的单元格的连通信息。
作为一个可选的示例,当前单元格与在当前层上与当前单元格相邻的单元格可以指当前单元格在所在层上的前、后、左、右等方向上与其相邻单元格,当前单元格与在当前层上与当前单元格相邻的单元格的连通信息也就是当前单元格与所在层上的前、后、左、右等方向上与其相邻单元格之间的连通信息。例如,与单元格A相邻的单元格包括4个单元格,分别是在单元格A的水平前方的单元格1,在单元格A的水平后方的单元格2,在单元格A的水平左方的单元格3,在单元格A的水平右方的单元格4,连通信息包括单元格A与单元格1之间的连通信息,单元格A与单元格2之间的连通信息,单元格A与单元格3之间的连通信息,以及单元格A与单元格4之间的连通信息。
作为一个可选的示例,当前单元格与在相邻层上与当前单元格相邻的单元格可以指当前单元格在相邻层上的前、后、左、右等方向上与其相邻单元格,当前单元格与在相邻层上与当前单元格相邻的单元格的连通信息也就是当前单元格与相邻层上的前、后、左、右等方向上与其相邻单元格之间的连通信息,其中,相邻层可以为与当前单元格所在层相邻的层。例如,第一层是当前单元格所在的水平平面;第二层是与第一层相邻的,位于第一层上方的平面。与当前单元格相邻的单元格可以包括两个层面的多个单元格,分别是第一层上在当前单元格A的水平前方的单元格1,第一层上在当前单元格A的水平后方的单元格2,第一层上在当前单元格A的水平左方的单元格3,第一层上在当前单元格A的水平右方的单元格4;以及第二层上在当前单元格A的前方的单元格5,第二层上在当前单元格A的后方的单元格6,第二层上在当前单元格A的左方的单元格7,第二层上在当前单元格A的右方的单元格8,以及第二层上在当前单元格A正上方的单元格9。则当前单元格A与在相邻层上与当前单元格相邻的单元格的连通信息可以包括当前单元格A分别与单元格1至单元格9之间的连通信息。
作为一种可选的实施例,本发明实施例可以通过执行以下步骤来设置三维地图中任意两个相邻的单元格之间的连通信息,并将设置好的任意两个相邻的单元格之间的连通信息进行缓存,以便于后续快速地获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,以实现提高确定第一单元格与第二单元格之间是否连通的效率的目的。其中,在执行以下步骤中三维地图中的任意两个相邻的单元格被称为第三单元格和第四单元格:
在第三单元格在三维地图中所在的层高于第四单元格在三维地图中所在的层、且第四单元格的高度大于等于目标对象的高度、第四单元格的宽度大于等于目标对象的宽度的情况下,将第三单元格到第四单元格的连通信息设置为指示连通。
在第三单元格在三维地图中所在的层低于第四单元格在三维地图中所在的层、且第三单元格的高度大于等于目标对象的高度、第三单元格的宽度大于等于目标对象的宽度的情况下,将第四单元格到第三单元格的连通信息设置为指示连通;
在第三单元格在三维地图中所在的层比第四单元格在三维地图中所在的层低第一高度差、且第一高度差小于等于第一阈值、第四单元格的高度大于等于目标对象的高度、第四单元格的宽度大于等于目标对象的宽度的情况下,将第三单元格到第四单元格的连通信息设置为指示连通;
在第三单元格在三维地图中所在的层比第四单元格在三维地图中所在的层高第二高度差、且第二高度差小于等于第二阈值、第三单元格的高度大于等于目标对象的高度、第三单元格的宽度大于等于目标对象的宽度的情况下,将第四单元格到第三单元格的连通信息设置为指示连通。
针对上述四种情况需要说明的是,判断单元格的高度和宽度是否大于等于目标对象的高度和宽度是为了使得目标对象的移动目标单元格能够容纳该目标对象,而判断相邻的两个单元格之间的层高度以及层之间的高度差是为了满足目标对象由高向低移动总能够成功,而目标对象由低向高移动时只有层之间的高度差低于预定阈值时才可以移动成功,其中,预定阈值(也即第一阈值和第二阈值)可以根据实际需求设定或调整。
采用本发明实施例,可以预先设置三维地图上的任意两个相邻的单元格之间的连通信息,之后再通过将其进行缓存,以便于从预先缓存好的连通信息中可以直接快速地获取到目标移动路径上每相邻的两个目标单元格之间的目标连通信息,这将使得根据目标连通信息确定第一单元格与第二单元格之间是否连通的效率得到较大提高,进而达到提高目标对象从第一单元格移动至第二单元格的速度和效率的效果。
作为一种可选的实施例,获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息可以包括以下之一:获取到第一目标连通信息,其中,第一目标连通信息用于指示两个目标单元格不连通;获取到第二目标连通信息,其中,第二目标连通信息用于指示两个目标单元格连通、且两个目标单元格位于三维地图中的同一层;获取到第三目标连通信息,其中,第三目标连通信息用于指示两个目标单元格连通、且两个目标单元格分别位于三维地图中相邻的两层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻;获取到第四目标连通信息,其中,第四目标连通信息用于指示两个目标单元格连通、且两个目标单元格分别位于三维地图中不同的层,不同的层之间相隔至少一层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻。
采用本发明上述实施例,从预先缓存的三维地图上的任意两个相邻的单元格之间的连通信息中所获取到的目标移动路径上每相邻的两个目标单元格之间的目标连通信息可以为第一目标连通信息、第二目标连通信息、第三目标连通信息以及第四目标连通信息中的任意一种,当获取到第一目标连通信息时,可以确定该两个目标单元格之间不连通;当获取到第二目标连通信息时,可以确定该两个目标单元格之间连通、且这两个目标单元格位于三维地图中的同一层;当获取到第三目标连通信息时,可以确定该两个目标单元格之间连通、且这两个目标单元格位于三维地图中相邻的两层;当获取到第四目标连通信息时,可以确定该两个目标单元格之间连通、且这两个目标单元格位于三维地图中不同的层,其中,不同的层之间相隔至少一层。本发明实施例通过获取不同类型的目标连通信息,可以确定出目标移动路径上每相邻的两个目标单元格之间的连通性,以便于达到进一步地确定第一单元格与第二单元格之间的连通性的目的。
作为一个可选的示例,目标单元格A在同一层中的目标方向,例如水平前方与单元格1相邻,在上面一层中的目标方向上与目标单元格A相邻的单元格5,在第N层中的目标方向上与目标单元格A相邻的单元格6,其中,第N层是除了目标单元格所在层和其上面一层的其他一层。若目标单元格A与单元格1、单元格5、以及单元格6均不连通,则可以用第一目标连通信息表示,表示该目标单元格A在目标方向上与其相邻目标单元格均不连通;若目标单元格A与单元格1连通,则可以用第二目标连通信息表示,表示该目标单元格A在目标方向上与其处于同一层上的相邻目标单元格连通;若目标单元格A与单元格5连通,则可以用第三目标连通信息表示,表示该目标单元格A在目标方向上与其上面相邻一层的相邻目标单元格连通;若目标单元格A与单元格6连通,则可以用第四目标连通信息表示,表示该目标单元格A在目标方向上与其更上面层的相邻目标单元格连通。
需要说明的是,当获取到的目标连通信息为第四目标连通信息的情况下,为了保证相邻的两个目标单元格之间的连通性的准确性,该实施例可以采用连通性判断方法实时判断该相邻的两个目标单元格之间是否连通,具体地判断方法可以参见本发明上述实施例中所介绍的四种情况,当相邻的两个目标单元格之间满足上述四种情况中的任意一种时,均可以确定这两个相邻的目标单元格之间连通,否则确定这两个相邻的目标单元格之间不连通。
作为一种可选的实施例,本发明实施例可以从第一单元格开始遍历目标移动路径上的目标单元格,依次获取每相邻的两个目标单元格之间的目标连通信息。具体地,在第一单元格与第二单元格之间包括多个目标单元格的情况下,从第一单元格开始,将第一单元格作为当前单元格,获取当前单元格与其相邻的下一个单元格的连通信息,然后将下一个单元格作为当前单元格,依次重复获取当前单元格与其相邻的下一个单元格的连通信息,直至下一格单元格为第二单元格时停止遍历,以实现获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息的目的。
作为一个可选的示例,第一单元格为单元格1,第二单元格为单元格2,单元格1与单元格2之间包括单元格3和单元格4,其中,单元格1与单元格3相邻,单元格3分别与单元格1和单元格4相邻,单元格4分别与单元格3和单元格2相邻。依次遍历单元格1、单元格3、单元格4、以及单元格2,首先以单元格1作为当前单元格,单元格3作为下一个单元格,获取单元格1与单元格3之间的连通信息;再将单元格3作为当前单元格,单元格4作为下一个单元格,获取单元格3与单元格4之间的连通信息;然后再将单元格4作为当前单元格,单元格2作为下一个单元格,获取单元格4与单元格2之间的连通信息,并在获取完单元格4与单元格2之间的连通信息后停止遍历。
在步骤S306提供的技术方案中,在获取到目标移动路径上每相邻的两个目标单元格之间的目标连通信息之后,本发明实施例可以根据所获取到的目标连通信息确定第一单元格与第二单元格之间是否连通。
作为一种可选的实施例,根据目标连通信息确定第一单元格与第二单元格是否连通可以包括:在目标连通信息指示在目标移动路径上存在相邻的两个目标单元格不连通的情况下,确定出第一单元格与第二单元格不连通;在目标连通信息指示在目标移动路径上每相邻的两个目标单元格都连通的情况下,确定出第一单元格与第二单元格连通。
需要说明的是,根据获取到的目标连通信息确定第一单元格与第二单元格是否连通时,如果目标连通信息指示存在相连的两个目标单元格不连通的情况,不管不连通的相连的两个目标单元格是多少对,都可以确定第一单元格与第二单元格之间不连通,只有在目标移动路径上的所有的相邻的两个目标单元格都连通的情况下,才能确定第一单元格与第二单元格之间连通。
在实际应用场景中,如果获取到目标移动路径上存在相邻的两个目标单元格不连通,则可以无需在继续获取目标移动路径上其他的相邻的两个目标单元格之间的目标连通信息,便可以直接确定第一单元格与第二单元格之间不连通,这样能够节省确定第一单元格与第二单元格之间是否连通的时间,进而提高连通性判断效率。
作为一个可选的示例,第一单元格1与第二单元格4之间包括依次相邻的单元格2和单元格3,若单元格1与其相邻的单元格2连通,且单元格2与其相邻的单元格3连通,且单元格3与单元格4连通,则可以确定单元格1与单元格4连通。如果单元格1与单元格2、单元格2与单元格3、单元格3与单元格4中任意一组不连通,则可以确定单元格1与单元格4不连通。
在步骤S308提供的技术方案中,在根据所获取到的目标连通信息确定出第一单元格与第二单元格之间连通的情况下,本发明实施例可以将目标对象从三维地图上的第一单元格移动至第二单元格,以实现对获取到的操作指令的响应。需要说明的是,本发明实施例对目标对象从第一单元格移动至第二单元格的移动方式不做具体限定,例如在实际应用场景中,本发明实施例可以采用直接将目标对象从第一单元格移动至第二单元格的方式,也即目标对象直接从第一单元格跳到第二单元格,也可以采用目标对象按照从第一单元格到第二单元格的目标移动路径上移动的方式实现将目标对象从第一单元格移动至第二单元格。
本发明还提供了一种优选实施例,该优选实施例一种针对基于体素(Voxel)的3D场景描述***的碰撞检测性能优化方法。
图4是根据本发明实施例的一种基于体素方案的3D场景示意图,如图4所示,将如图1所示的模型对象分解成无数个小方块(体素)。
基于体素(Voxel)的3D场景建模规则描述如下:
将3D场景以体素(Voxel)为单位进行离散化描述;
以(x,y,layer)三元组对体素(Voxel)位置进行定位;
以(x,y,z,layer)四元组描述移动对象在空间的位置;
layer=0的体素(Voxel)为地表层,体素(Voxel)记录上沿高度;
layer>0的体素(Voxel)为建筑层,体素(Voxel)记录上下沿高度。
通过上述规则,即可对场景进行完全的描述,也可定位场景中任意的元素的坐标位置。
图5是根据本发明实施例的一种基于本发明中的3D场景建模方法对于建筑的建模示意图,如图5所示,表示大门的体素为地表层layer=0,处表示大门体素以外的其他体素为建筑层,hupward表示下沿高度,hdownward表示上沿高度。
对于在场景中运动的角色实体(玩家或者NPC),同样抽象为一个体素(长、宽、高三个要素)。
在上述数据描述的基础上,假设现在角色要从单元格A(Grid-A)行走到单元格B(Grid-B),则两个单元格是否联通取决于如下条件:
(1)判断相邻的两格高差。
若高差为正,则角色正从高向低运动,任何情况下都联通;若高差为负,则角色正从低向高运动,超过限阈值H,则不连通。
(2)判断目标格空间。
判断目标格空间高度是否可以容纳角色高度;判断目标格空间宽度是否可以容纳角色宽度。
满足以上条件,则可认为相邻单元格之间是联通的。进行通过对角色所需经过路径上的点进行逐一判断,即可实现路径的连通性判断。
图6是根据本发明实施例的一种基于体素的连通性判断示意图,如图6所示,角色在位置a处,判断出角色移动前方的目标格空间宽度不可以容纳角色的宽度,则在位置a处相邻的单元格不连通;角色在位置b处,判断出角色当前位置b与前方相邻单元格的高度差为负,角色从低向高运动,位置b与前方相邻单元格的高度差不超过阈值H,则位置b与前方相邻单元格联通;角色在位置c处,判断出角色当前位置c与前方相邻单元格的高度差为负,角色从低向高运动,位置c与前方相邻单元格的高度差超过阈值H,则位置c与前方相邻单元格不联通;角色在位置d处,判断出角色当前位置d与前方相邻单元格的高度差为正,角色从高向低运动,则位置d与前方相邻单元格联通。
可选地,通过观察与数据分析,可以发现连通性计算存在如下特点:
(1)移动对象在相邻单元格之间的移动限定在四方向之间进行。
(2)行走连通唯一性:相邻单元格之间,同一个方向上,从起点(Src)层只能切换到一个唯一的重点(Dst)层。
(3)静态数据重复计算:决定连通性条件都是静态的,在运行时进行碰撞检测来计算连通性,实际上存在大量的重复计算。
(4)数据特征:游戏地图中,绝大部分的地表都是野外,建筑所覆盖的面积占比很少。经统计,只存在0,1两层的地面,覆盖了95%以上的地表。
针对上述几条特点,本发明推出一种针对性的优化,即通过预先计算碰撞信息,生成连通性信息缓存(Connectivity Cache),避免重复计算,极大提升运行性能。
同时,考虑在提升计算性能的时候,尽量降低额外的内存消耗。依照上文所述数据特征(0,1两层的地面,占比95%以上),本方案只缓存0,1两层的连通性信息。这样,使用8个bit(即一个byte)即可描述一个单元格到其余四个相邻单元格的连通性信息。
图7是根据本发明实施例的一种连通性信息编码示意图,如图7所示,
(1)用2个bit来存储每个单元格(Grid)到相邻单元格(Grid)的连通性信息。
(2)2个bit可以有4个值,每个值的意义如下(2进制表示):
00–表示不连通;
01–表示与0层联通;
10–表示与1层联通;
11–表示联通更高层。
(3)每个单元格与相邻四个单元格相邻接,则一个单元格总共需要消耗8bit,即1byte。
(4)当连通性掩码(mask)为非11时,可直接返回联通信息,当掩码(mask)为11时,再运行动态连通性判断的程序,进一步判断连通性。由于之前的统计数据表明,95%的地表都最多只有1层,这意味着绝大部分情况下,都可以直接从存储信息(Cache信息)中返回,无需再进行动态计算。
基于以上优化,可以大幅降低3D场景中连通性检测所需的CPU消耗,提升了服务器的承载能力。
采用本发明上述实施例,可以减少计算量,使3D场景下碰撞检测的消耗和2D情况下趋近;消除重复计算,通过预生成数据,避免了运行过程中大量的重复计算。
本发明上述实施例,针对原有***的优化,不会对玩家产生影响。
本发明上述实施例,由于提升了计算性能,提高单服承载人数的同时,可以使游戏角色的技能、移动等动作都更为流畅,客观上提升了玩家的游戏体验。
采用本发明上述实施例,并不会影响原有***核心,只增加了一层缓存层,对原有***的影响小,开发量小,整体性价比非常高。
本发明上述实施例,可以提升服务器整体性能,使游戏体验更加流畅;还可以在承载人数不变的情况下,减小CPU的消耗,使用户可以获得更加流畅的游戏体验。
本发明上述实施例,可以硬件不变的情况下,提升单服承载,并且由于单服承载的提升,可以降低运营成本,用更少的机器承载更多的玩家,极大的降低运营成本;还可以提升策划设计空间,单进程承载人数更多,策划可以设计人数更多,更复杂的玩法,为游戏提供了更多的可玩性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述对象移动方法的对象移动装置。
图8是根据本发明实施例的一种可选的对象移动装置的示意图,如图8所示,该装置可以包括:第一获取单元82,用于获取操作指令,其中,操作指令用于请求将目标对象从三维地图上的第一单元格移动到第二单元格,三维地图被划分成包括第一单元格和第二单元格在内的多个三维的单元格,每个单元格用于指示一个三维空间;第二获取单元84,用于获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,其中,多个三维的单元格包括每相邻的两个目标单元格,每相邻的两个目标单元格包括第一单元格和第二单元格,目标移动路径为从第一单元格到第二单元格的移动路径,目标连通信息用于指示每相邻的两个目标单元格是否连通,目标连通信息是预先缓存的信息;确定单元86,用于根据目标连通信息确定第一单元格与第二单元格是否连通;移动单元88,用于在确定出第一单元格与第二单元格连通的情况下,将目标对象从三维地图上的第一单元格移动到第二单元格。
需要说明的是,该实施例中的第一获取单元82可以用于执行本申请实施例1中的步骤S302,该实施例中的第二获取单元84可以用于执行本申请实施例1中的步骤S304,该实施例中的确定单元86可以用于执行本申请实施例1中的步骤S306,该实施例中的移动单元88可以用于执行本申请实施例1中的步骤S308。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,如图9所示,该装置还可以包括:缓存单元81,用于在获取操作指令之前,缓存多个三维的单元格的连通信息,其中,连通信息包括:多个三维的单元格中任意两个相邻的单元格之间的连通信息。
作为一种可选的实施例,如图10所示,缓存单元81可以包括:执行模块812,用于对于多个三维的单元格中的每个单元格执行以下步骤,其中,每个单元格在执行以下步骤中被记为当前单元格:获取当前单元格与在当前层上与当前单元格相邻的单元格的连通信息,以及当前单元格与在相邻层上与当前单元格相邻的单元格的连通信息,其中,当前层为当前单元格在三维地图中所在的层,相邻层为三维地图中与当前层相邻的层。
作为一种可选的实施例,如图11所示,确定单元86可以包括:第一确定模块862,用于在目标连通信息指示在目标移动路径上存在相邻的两个目标单元格不连通的情况下,确定出第一单元格与第二单元格不连通;第二确定模块864,用于在目标连通信息指示在目标移动路径上每相邻的两个目标单元格都连通的情况下,确定出第一单元格与第二单元格连通。
作为一种可选的实施例,如图12所示,第二获取单元84可以包括以下之一:第一获取模块842,用于获取到第一目标连通信息,其中,第一目标连通信息用于指示两个目标单元格不连通;第二获取模块844,用于获取到第二目标连通信息,其中,第二目标连通信息用于指示两个目标单元格连通、且两个目标单元格位于三维地图中的同一层;第三获取模块846,用于获取到第三目标连通信息,其中,第三目标连通信息用于指示两个目标单元格连通、且两个目标单元格分别位于三维地图中相邻的两层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻;第四获取模块848,用于获取到第四目标连通信息,其中,第四目标连通信息用于指示两个目标单元格连通、且两个目标单元格分别位于三维地图中不同的层,不同的层之间相隔至少一层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻。
作为一种可选的实施例,如图13所示,该装置还可以包括:设置单元80,用于在缓存多个三维的单元格的连通信息之前,通过执行以下步骤来设置多个三维的单元格中任意两个相邻的单元格之间的连通信息,其中,在执行以下步骤中任意两个相邻的单元格被称为第三单元格和第四单元格:在第三单元格在三维地图中所在的层高于第四单元格在三维地图中所在的层、且第四单元格的高度大于等于目标对象的高度、第四单元格的宽度大于等于目标对象的宽度的情况下,将第三单元格到第四单元格的连通信息设置为指示连通;在第三单元格在三维地图中所在的层低于第四单元格在三维地图中所在的层、且第三单元格的高度大于等于目标对象的高度、第三单元格的宽度大于等于目标对象的宽度的情况下,将第四单元格到第三单元格的连通信息设置为指示连通;在第三单元格在三维地图中所在的层比第四单元格在三维地图中所在的层低第一高度差、且第一高度差小于等于第一阈值、第四单元格的高度大于等于目标对象的高度、第四单元格的宽度大于等于目标对象的宽度的情况下,将第三单元格到第四单元格的连通信息设置为指示连通;在第三单元格在三维地图中所在的层比第四单元格在三维地图中所在的层高第二高度差、且第二高度差小于等于第二阈值、第三单元格的高度大于等于目标对象的高度、第三单元格的宽度大于等于目标对象的宽度的情况下,将第四单元格到第三单元格的连通信息设置为指示连通。
通过上述模块,将三维地图划分成多个三维的单元格,每个单元格指示一个三维空间,在获取到用于请求将目标对象从第一单元格移动至第二单元格的操作指令之后,通过获取预先缓存好的从第一单元格到第二单元格的目标移动路径上的每相邻的两个目标单元格之间的目标连通信息来确定第一单元格与第二单元格之间是否连通,进而可以实现提高位置连通性判断效率的目的。进一步地,在确定第一单元格与第二单元格之间连通的情况下,将目标对象从第一单元格移动至第二单元格,可以实现快速地将目标对象从第一单元格移动至第二单元格的目的,进而可以解决相关技术中将对象从一个位置移动到另一个位置的效率较低的技术问题,达到缩短对象移动消耗时间,提高对象移动效率技术效果。
实施例3
根据本发明实施例,还提供了一种用于实施上述对象移动方法的电子装置。
图14是根据本发明实施例的一种电子装置的结构框图,如图14所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205,如图14所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的对象移动方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的对象移动方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以调用存储器203存储的应用程序,以执行下述步骤:获取操作指令,其中,操作指令用于请求将目标对象从三维地图上的第一单元格移动到第二单元格,三维地图被划分成包括第一单元格和第二单元格在内的多个三维的单元格,每个单元格用于指示一个三维空间;获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,其中,多个三维的单元格包括每相邻的两个目标单元格,每相邻的两个目标单元格包括第一单元格和第二单元格,目标移动路径为从第一单元格到第二单元格的移动路径,目标连通信息用于指示每相邻的两个目标单元格是否连通,目标连通信息是预先缓存的信息;根据目标连通信息确定第一单元格与第二单元格是否连通;在确定出第一单元格与第二单元格连通的情况下,将目标对象从三维地图上的第一单元格移动到第二单元格。
处理器201还用于执行下述步骤:在获取操作指令之前,缓存多个三维的单元格的连通信息,其中,连通信息包括:多个三维的单元格中任意两个相邻的单元格之间的连通信息。
处理器201还用于执行下述步骤:对于多个三维的单元格中的每个单元格执行以下步骤,其中,每个单元格在执行以下步骤中被记为当前单元格:获取当前单元格与在当前层上与当前单元格相邻的单元格的连通信息,以及当前单元格与在相邻层上与当前单元格相邻的单元格的连通信息,其中,当前层为当前单元格在三维地图中所在的层,相邻层为三维地图中与当前层相邻的层。
处理器201还用于执行下述步骤:在目标连通信息指示在目标移动路径上存在相邻的两个目标单元格不连通的情况下,确定出第一单元格与第二单元格不连通;在目标连通信息指示在目标移动路径上每相邻的两个目标单元格都连通的情况下,确定出第一单元格与第二单元格连通。
处理器201还用于执行下述步骤:获取到第一目标连通信息,其中,第一目标连通信息用于指示两个目标单元格不连通;获取到第二目标连通信息,其中,第二目标连通信息用于指示两个目标单元格连通、且两个目标单元格位于三维地图中的同一层;获取到第三目标连通信息,其中,第三目标连通信息用于指示两个目标单元格连通、且两个目标单元格分别位于三维地图中相邻的两层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻;获取到第四目标连通信息,其中,第四目标连通信息用于指示两个目标单元格连通、且两个目标单元格分别位于三维地图中不同的层,不同的层之间相隔至少一层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻。
处理器201还用于执行下述步骤:在缓存多个三维的单元格的连通信息之前,通过执行以下步骤来设置多个三维的单元格中任意两个相邻的单元格之间的连通信息,其中,在执行以下步骤中任意两个相邻的单元格被称为第三单元格和第四单元格:在第三单元格在三维地图中所在的层高于第四单元格在三维地图中所在的层、且第四单元格的高度大于等于目标对象的高度、第四单元格的宽度大于等于目标对象的宽度的情况下,将第三单元格到第四单元格的连通信息设置为指示连通;在第三单元格在三维地图中所在的层低于第四单元格在三维地图中所在的层、且第三单元格的高度大于等于目标对象的高度、第三单元格的宽度大于等于目标对象的宽度的情况下,将第四单元格到第三单元格的连通信息设置为指示连通;在第三单元格在三维地图中所在的层比第四单元格在三维地图中所在的层低第一高度差、且第一高度差小于等于第一阈值、第四单元格的高度大于等于目标对象的高度、第四单元格的宽度大于等于目标对象的宽度的情况下,将第三单元格到第四单元格的连通信息设置为指示连通;在第三单元格在三维地图中所在的层比第四单元格在三维地图中所在的层高第二高度差、且第二高度差小于等于第二阈值、第三单元格的高度大于等于目标对象的高度、第三单元格的宽度大于等于目标对象的宽度的情况下,将第四单元格到第三单元格的连通信息设置为指示连通。
采用本发明实施例,提供了一种对象移动方案,该方案将三维地图划分成多个三维的单元格,每个单元格指示一个三维空间,在获取到用于请求将目标对象从第一单元格移动至第二单元格的操作指令之后,通过获取预先缓存好的从第一单元格到第二单元格的目标移动路径上的每相邻的两个目标单元格之间的目标连通信息来确定第一单元格与第二单元格之间是否连通,进而可以实现提高位置连通性判断效率的目的。进一步地,在确定第一单元格与第二单元格之间连通的情况下,将目标对象从第一单元格移动至第二单元格,可以实现快速地将目标对象从第一单元格移动至第二单元格的目的,进而可以解决相关技术中将对象从一个位置移动到另一个位置的效率较低的技术问题,达到缩短对象移动消耗时间,提高对象移动效率技术效果。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图14所示的结构仅为示意,电子装置可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图14其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图14中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图14所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行对象移动方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取操作指令,其中,操作指令用于请求将目标对象从三维地图上的第一单元格移动到第二单元格,三维地图被划分成包括第一单元格和第二单元格在内的多个三维的单元格,每个单元格用于指示一个三维空间;
S2,获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,其中,多个三维的单元格包括每相邻的两个目标单元格,每相邻的两个目标单元格包括第一单元格和第二单元格,目标移动路径为从第一单元格到第二单元格的移动路径,目标连通信息用于指示每相邻的两个目标单元格是否连通,目标连通信息是预先缓存的信息;
S3,根据目标连通信息确定第一单元格与第二单元格是否连通;
S4,在确定出第一单元格与第二单元格连通的情况下,将目标对象从三维地图上的第一单元格移动到第二单元格。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取操作指令之前,缓存多个三维的单元格的连通信息,其中,连通信息包括:多个三维的单元格中任意两个相邻的单元格之间的连通信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:对于多个三维的单元格中的每个单元格执行以下步骤,其中,每个单元格在执行以下步骤中被记为当前单元格:获取当前单元格与在当前层上与当前单元格相邻的单元格的连通信息,以及当前单元格与在相邻层上与当前单元格相邻的单元格的连通信息,其中,当前层为当前单元格在三维地图中所在的层,相邻层为三维地图中与当前层相邻的层。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在目标连通信息指示在目标移动路径上存在相邻的两个目标单元格不连通的情况下,确定出第一单元格与第二单元格不连通;在目标连通信息指示在目标移动路径上每相邻的两个目标单元格都连通的情况下,确定出第一单元格与第二单元格连通。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取到第一目标连通信息,其中,第一目标连通信息用于指示两个目标单元格不连通;获取到第二目标连通信息,其中,第二目标连通信息用于指示两个目标单元格连通、且两个目标单元格位于三维地图中的同一层;获取到第三目标连通信息,其中,第三目标连通信息用于指示两个目标单元格连通、且两个目标单元格分别位于三维地图中相邻的两层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻;获取到第四目标连通信息,其中,第四目标连通信息用于指示两个目标单元格连通、且两个目标单元格分别位于三维地图中不同的层,不同的层之间相隔至少一层,两个目标单元格中的一个目标单元格在两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与另一个目标单元格相同或相邻。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在缓存多个三维的单元格的连通信息之前,通过执行以下步骤来设置多个三维的单元格中任意两个相邻的单元格之间的连通信息,其中,在执行以下步骤中任意两个相邻的单元格被称为第三单元格和第四单元格:在第三单元格在三维地图中所在的层高于第四单元格在三维地图中所在的层、且第四单元格的高度大于等于目标对象的高度、第四单元格的宽度大于等于目标对象的宽度的情况下,将第三单元格到第四单元格的连通信息设置为指示连通;在第三单元格在三维地图中所在的层低于第四单元格在三维地图中所在的层、且第三单元格的高度大于等于目标对象的高度、第三单元格的宽度大于等于目标对象的宽度的情况下,将第四单元格到第三单元格的连通信息设置为指示连通;在第三单元格在三维地图中所在的层比第四单元格在三维地图中所在的层低第一高度差、且第一高度差小于等于第一阈值、第四单元格的高度大于等于目标对象的高度、第四单元格的宽度大于等于目标对象的宽度的情况下,将第三单元格到第四单元格的连通信息设置为指示连通;在第三单元格在三维地图中所在的层比第四单元格在三维地图中所在的层高第二高度差、且第二高度差小于等于第二阈值、第三单元格的高度大于等于目标对象的高度、第三单元格的宽度大于等于目标对象的宽度的情况下,将第四单元格到第三单元格的连通信息设置为指示连通。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种对象移动方法,其特征在于,包括:
获取操作指令,其中,所述操作指令用于请求将目标对象从三维地图上的第一单元格移动到第二单元格,所述三维地图被划分成包括所述第一单元格和所述第二单元格在内的多个三维的单元格,每个所述单元格用于指示一个三维空间;
获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,其中,所述多个三维的单元格包括所述每相邻的两个目标单元格,所述每相邻的两个目标单元格包括所述第一单元格和所述第二单元格,所述目标移动路径为从所述第一单元格到所述第二单元格的移动路径,所述目标连通信息用于指示所述每相邻的两个目标单元格是否连通,所述目标连通信息是预先缓存的信息;
根据所述目标连通信息确定所述第一单元格与所述第二单元格是否连通;
在确定出所述第一单元格与所述第二单元格连通的情况下,将所述目标对象从所述三维地图上的所述第一单元格移动到所述第二单元格。
2.根据权利要求1所述的方法,其特征在于,在所述获取操作指令之前,所述方法还包括:
缓存所述多个三维的单元格的连通信息,其中,所述连通信息包括:所述多个三维的单元格中任意两个相邻的单元格之间的连通信息。
3.根据权利要求2所述的方法,其特征在于,所述缓存所述多个三维的单元格的连通信息包括:
对于所述多个三维的单元格中的每个单元格执行以下步骤,其中,所述每个单元格在执行以下步骤中被记为当前单元格:
获取所述当前单元格与在当前层上与所述当前单元格相邻的单元格的连通信息,以及所述当前单元格与在相邻层上与所述当前单元格相邻的单元格的连通信息,其中,所述当前层为所述当前单元格在所述三维地图中所在的层,所述相邻层为所述三维地图中与所述当前层相邻的层。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标连通信息确定所述第一单元格与所述第二单元格是否连通包括:
在所述目标连通信息指示在所述目标移动路径上存在相邻的两个目标单元格不连通的情况下,确定出所述第一单元格与所述第二单元格不连通;
在所述目标连通信息指示在所述目标移动路径上每相邻的两个目标单元格都连通的情况下,确定出所述第一单元格与所述第二单元格连通。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息包括以下之一:
获取到第一目标连通信息,其中,所述第一目标连通信息用于指示所述两个目标单元格不连通;
获取到第二目标连通信息,其中,所述第二目标连通信息用于指示所述两个目标单元格连通、且所述两个目标单元格位于所述三维地图中的同一层;
获取到第三目标连通信息,其中,所述第三目标连通信息用于指示所述两个目标单元格连通、且所述两个目标单元格分别位于所述三维地图中相邻的两层,所述两个目标单元格中的一个目标单元格在所述两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与所述另一个目标单元格相同或相邻;
获取到第四目标连通信息,其中,所述第四目标连通信息用于指示所述两个目标单元格连通、且所述两个目标单元格分别位于所述三维地图中不同的层,所述不同的层之间相隔至少一层,所述两个目标单元格中的一个目标单元格在所述两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与所述另一个目标单元格相同或相邻。
6.根据权利要求2所述的方法,其特征在于,在所述缓存所述多个三维的单元格的连通信息之前,所述方法还包括:
通过执行以下步骤来设置所述多个三维的单元格中任意两个相邻的单元格之间的连通信息,其中,在执行以下步骤中所述任意两个相邻的单元格被称为第三单元格和第四单元格:
在所述第三单元格在所述三维地图中所在的层高于所述第四单元格在所述三维地图中所在的层、且所述第四单元格的高度大于等于所述目标对象的高度、所述第四单元格的宽度大于等于所述目标对象的宽度的情况下,将所述第三单元格到所述第四单元格的连通信息设置为指示连通;
在所述第三单元格在所述三维地图中所在的层低于所述第四单元格在所述三维地图中所在的层、且所述第三单元格的高度大于等于所述目标对象的高度、所述第三单元格的宽度大于等于所述目标对象的宽度的情况下,将所述第四单元格到所述第三单元格的连通信息设置为指示连通;
在所述第三单元格在所述三维地图中所在的层比所述第四单元格在所述三维地图中所在的层低第一高度差、且所述第一高度差小于等于第一阈值、所述第四单元格的高度大于等于所述目标对象的高度、所述第四单元格的宽度大于等于所述目标对象的宽度的情况下,将所述第三单元格到所述第四单元格的连通信息设置为指示连通;
在所述第三单元格在所述三维地图中所在的层比所述第四单元格在所述三维地图中所在的层高第二高度差、且所述第二高度差小于等于第二阈值、所述第三单元格的高度大于等于所述目标对象的高度、所述第三单元格的宽度大于等于所述目标对象的宽度的情况下,将所述第四单元格到所述第三单元格的连通信息设置为指示连通。
7.一种对象移动装置,其特征在于,包括:
第一获取单元,用于获取操作指令,其中,所述操作指令用于请求将目标对象从三维地图上的第一单元格移动到第二单元格,所述三维地图被划分成包括所述第一单元格和所述第二单元格在内的多个三维的单元格,每个所述单元格用于指示一个三维空间;
第二获取单元,用于获取目标移动路径上每相邻的两个目标单元格之间的目标连通信息,其中,所述多个三维的单元格包括所述每相邻的两个目标单元格,所述每相邻的两个目标单元格包括所述第一单元格和所述第二单元格,所述目标移动路径为从所述第一单元格到所述第二单元格的移动路径,所述目标连通信息用于指示所述每相邻的两个目标单元格是否连通,所述目标连通信息是预先缓存的信息;
确定单元,用于根据所述目标连通信息确定所述第一单元格与所述第二单元格是否连通;
移动单元,用于在确定出所述第一单元格与所述第二单元格连通的情况下,将所述目标对象从所述三维地图上的所述第一单元格移动到所述第二单元格。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
缓存单元,用于在所述获取操作指令之前,缓存所述多个三维的单元格的连通信息,其中,所述连通信息包括:所述多个三维的单元格中任意两个相邻的单元格之间的连通信息。
9.根据权利要求8所述的装置,其特征在于,所述缓存单元包括:
执行模块,用于对于所述多个三维的单元格中的每个单元格执行以下步骤,其中,所述每个单元格在执行以下步骤中被记为当前单元格:
获取所述当前单元格与在当前层上与所述当前单元格相邻的单元格的连通信息,以及所述当前单元格与在相邻层上与所述当前单元格相邻的单元格的连通信息,其中,所述当前层为所述当前单元格在所述三维地图中所在的层,所述相邻层为所述三维地图中与所述当前层相邻的层。
10.根据权利要求7所述的装置,其特征在于,所述确定单元包括:
第一确定模块,用于在所述目标连通信息指示在所述目标移动路径上存在相邻的两个目标单元格不连通的情况下,确定出所述第一单元格与所述第二单元格不连通;
第二确定模块,用于在所述目标连通信息指示在所述目标移动路径上每相邻的两个目标单元格都连通的情况下,确定出所述第一单元格与所述第二单元格连通。
11.根据权利要求7至10中任一项所述的装置,其特征在于,所述第二获取单元包括以下之一:
第一获取模块,用于获取到第一目标连通信息,其中,所述第一目标连通信息用于指示所述两个目标单元格不连通;
第二获取模块,用于获取到第二目标连通信息,其中,所述第二目标连通信息用于指示所述两个目标单元格连通、且所述两个目标单元格位于所述三维地图中的同一层;
第三获取模块,用于获取到第三目标连通信息,其中,所述第三目标连通信息用于指示所述两个目标单元格连通、且所述两个目标单元格分别位于所述三维地图中相邻的两层,所述两个目标单元格中的一个目标单元格在所述两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与所述另一个目标单元格相同或相邻;
第四获取模块,用于获取到第四目标连通信息,其中,所述第四目标连通信息用于指示所述两个目标单元格连通、且所述两个目标单元格分别位于所述三维地图中不同的层,所述不同的层之间相隔至少一层,所述两个目标单元格中的一个目标单元格在所述两个目标单元格中的另一个目标单元格所在的层上所映射到的单元格与所述另一个目标单元格相同或相邻。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
设置单元,用于在所述缓存所述多个三维的单元格的连通信息之前,通过执行以下步骤来设置所述多个三维的单元格中任意两个相邻的单元格之间的连通信息,其中,在执行以下步骤中所述任意两个相邻的单元格被称为第三单元格和第四单元格:
在所述第三单元格在所述三维地图中所在的层高于所述第四单元格在所述三维地图中所在的层、且所述第四单元格的高度大于等于所述目标对象的高度、所述第四单元格的宽度大于等于所述目标对象的宽度的情况下,将所述第三单元格到所述第四单元格的连通信息设置为指示连通;
在所述第三单元格在所述三维地图中所在的层低于所述第四单元格在所述三维地图中所在的层、且所述第三单元格的高度大于等于所述目标对象的高度、所述第三单元格的宽度大于等于所述目标对象的宽度的情况下,将所述第四单元格到所述第三单元格的连通信息设置为指示连通;
在所述第三单元格在所述三维地图中所在的层比所述第四单元格在所述三维地图中所在的层低第一高度差、且所述第一高度差小于等于第一阈值、所述第四单元格的高度大于等于所述目标对象的高度、所述第四单元格的宽度大于等于所述目标对象的宽度的情况下,将所述第三单元格到所述第四单元格的连通信息设置为指示连通;
在所述第三单元格在所述三维地图中所在的层比所述第四单元格在所述三维地图中所在的层高第二高度差、且所述第二高度差小于等于第二阈值、所述第三单元格的高度大于等于所述目标对象的高度、所述第三单元格的宽度大于等于所述目标对象的宽度的情况下,将所述第四单元格到所述第三单元格的连通信息设置为指示连通。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至6任一项中所述的方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710383748.8A CN107357563B (zh) | 2017-05-25 | 2017-05-25 | 对象移动方法和装置以及存储介质、电子装置 |
PCT/CN2018/086006 WO2018214724A1 (zh) | 2017-05-25 | 2018-05-08 | 对象移动方法和装置以及存储介质、电子装置 |
EP18805620.4A EP3575958B1 (en) | 2017-05-25 | 2018-05-08 | Object moving method and device, storage medium, and electronic device |
JP2019540537A JP6864753B2 (ja) | 2017-05-25 | 2018-05-08 | オブジェクト移動方法及び装置並びに記憶媒体、電子装置 |
KR1020197029556A KR102245905B1 (ko) | 2017-05-25 | 2018-05-08 | 객체 이동 방법 및 장치, 저장 매체 및 전자 장치 |
US16/541,643 US11110352B2 (en) | 2017-05-25 | 2019-08-15 | Object moving method and apparatus, storage medium, and electronic apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710383748.8A CN107357563B (zh) | 2017-05-25 | 2017-05-25 | 对象移动方法和装置以及存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107357563A CN107357563A (zh) | 2017-11-17 |
CN107357563B true CN107357563B (zh) | 2018-11-09 |
Family
ID=60270962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710383748.8A Active CN107357563B (zh) | 2017-05-25 | 2017-05-25 | 对象移动方法和装置以及存储介质、电子装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11110352B2 (zh) |
EP (1) | EP3575958B1 (zh) |
JP (1) | JP6864753B2 (zh) |
KR (1) | KR102245905B1 (zh) |
CN (1) | CN107357563B (zh) |
WO (1) | WO2018214724A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357563B (zh) * | 2017-05-25 | 2018-11-09 | 腾讯科技(深圳)有限公司 | 对象移动方法和装置以及存储介质、电子装置 |
CN111437606B (zh) * | 2020-03-30 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 碰撞检测的方法和装置、存储介质及电子装置 |
JP7233399B2 (ja) * | 2020-06-23 | 2023-03-06 | 任天堂株式会社 | ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法 |
CN111840998A (zh) * | 2020-06-30 | 2020-10-30 | 完美世界(北京)软件科技发展有限公司 | 操作控制方法和装置、存储介质和电子装置 |
US20220410002A1 (en) * | 2021-06-29 | 2022-12-29 | Bidstack Group PLC | Mesh processing for viewability testing |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100597433B1 (ko) * | 2003-12-17 | 2006-07-10 | 한국전자통신연구원 | 대규모 사용자 온라인 게임 서버에서의 셀 기반 관심 영역및 역관심 영역의 관리 방법 |
JP2006271784A (ja) | 2005-03-30 | 2006-10-12 | Konami Digital Entertainment:Kk | ゲーム装置、ゲーム制御方法、ならびに、プログラム |
CN100514342C (zh) * | 2006-10-12 | 2009-07-15 | 中山大学 | 一种rpg游戏场景路径的自动生成方法及装置 |
CN101241507B (zh) * | 2008-01-17 | 2011-09-14 | 腾讯科技(深圳)有限公司 | 一种地图寻路方法及*** |
US8249263B2 (en) * | 2008-05-15 | 2012-08-21 | International Business Machines Corporation | Method and apparatus for providing audio motion feedback in a simulated three-dimensional environment |
CN103714234B (zh) * | 2013-08-09 | 2017-01-25 | 网易(杭州)网络有限公司 | 一种游戏中确定对象移动路径的方法和设备 |
US9940404B2 (en) | 2013-10-01 | 2018-04-10 | Aaron Scott Dishno | Three-dimensional (3D) browsing |
JP5887458B1 (ja) | 2015-11-04 | 2016-03-16 | 株式会社Cygames | プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等 |
CN107357563B (zh) * | 2017-05-25 | 2018-11-09 | 腾讯科技(深圳)有限公司 | 对象移动方法和装置以及存储介质、电子装置 |
-
2017
- 2017-05-25 CN CN201710383748.8A patent/CN107357563B/zh active Active
-
2018
- 2018-05-08 WO PCT/CN2018/086006 patent/WO2018214724A1/zh unknown
- 2018-05-08 EP EP18805620.4A patent/EP3575958B1/en active Active
- 2018-05-08 KR KR1020197029556A patent/KR102245905B1/ko active IP Right Grant
- 2018-05-08 JP JP2019540537A patent/JP6864753B2/ja active Active
-
2019
- 2019-08-15 US US16/541,643 patent/US11110352B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2018214724A1 (zh) | 2018-11-29 |
US11110352B2 (en) | 2021-09-07 |
KR20190121388A (ko) | 2019-10-25 |
CN107357563A (zh) | 2017-11-17 |
JP6864753B2 (ja) | 2021-04-28 |
EP3575958A1 (en) | 2019-12-04 |
EP3575958A4 (en) | 2020-05-13 |
JP2020507847A (ja) | 2020-03-12 |
KR102245905B1 (ko) | 2021-04-28 |
US20190366215A1 (en) | 2019-12-05 |
EP3575958B1 (en) | 2023-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107357563B (zh) | 对象移动方法和装置以及存储介质、电子装置 | |
JP7296978B2 (ja) | 対戦ゲームプレイに参加させるためのプレーヤへのインセンティブ授与 | |
CN106390456B (zh) | 游戏中角色行为的生成方法和装置 | |
CN103838982B (zh) | 一种虚拟游戏对象生成方法及装置 | |
KR101517927B1 (ko) | 동적 장애가 없는 네트워크 게임 시스템 및 그 처리 방법 | |
CN108463273A (zh) | 基于游戏者的移动历史来进行非游戏者角色的路径寻找的游戏***等 | |
US8753204B2 (en) | Method and system for rendering virtual in-game environments | |
JP7456644B2 (ja) | マップ生成方法、装置、電子機器及びコンピュータ記憶媒体 | |
CN102933267A (zh) | 交互式混合异步计算机游戏基础结构 | |
US10449458B2 (en) | Skill matching for a multiplayer session | |
CN105117296B (zh) | 同步游戏中对象的状态的方法和*** | |
CN111202985B (zh) | 2d游戏中的路径规划方法、***及电子设备 | |
CN110170171A (zh) | 一种目标对象的控制方法及装置 | |
CN110070609A (zh) | 地形数据的处理方法、装置、存储介质、处理器及终端 | |
CN108619717A (zh) | 操作对象的确定方法、装置、存储介质及电子装置 | |
CN106693365A (zh) | 一种游戏对象快速传送方法和装置 | |
CN112156459A (zh) | 对战游戏的控制方法和装置、存储介质和电子装置 | |
CN109999497A (zh) | 虚拟对象的控制方法和装置、存储介质和电子装置 | |
CN106953756A (zh) | 一种业务数据的模拟延时方法以及服务器 | |
KR20080067892A (ko) | 게임 모델링 장치 및 그 방법 | |
Krikke | South Korea beats the world in broadband gaming | |
CN112206518B (zh) | 地图负载均衡的方法、装置、设备及计算机可读存储介质 | |
Powers et al. | DEE: An architecture for distributed virtual environment gaming | |
KR102595656B1 (ko) | 딥러닝 기반의 장기 게임 서비스 방법 및 그 장치 | |
KR20110085105A (ko) | 온라인게임 채널 관리 방법 및 그 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |