CN103714234B - 一种游戏中确定对象移动路径的方法和设备 - Google Patents
一种游戏中确定对象移动路径的方法和设备 Download PDFInfo
- Publication number
- CN103714234B CN103714234B CN201310346475.1A CN201310346475A CN103714234B CN 103714234 B CN103714234 B CN 103714234B CN 201310346475 A CN201310346475 A CN 201310346475A CN 103714234 B CN103714234 B CN 103714234B
- Authority
- CN
- China
- Prior art keywords
- waypoint
- path
- target
- road
- initial
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 22
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 2
- 230000004888 barrier function Effects 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001105 regulatory effect Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- KNMAVSAGTYIFJF-UHFFFAOYSA-N 1-[2-[(2-hydroxy-3-phenoxypropyl)amino]ethylamino]-3-phenoxypropan-2-ol;dihydrochloride Chemical compound Cl.Cl.C=1C=CC=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC=C1 KNMAVSAGTYIFJF-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Landscapes
- Navigation (AREA)
Abstract
本发明的实施方式提供了一种游戏中确定对象移动路径的方法和设备。该方法包括:响应于触发对象移动的请求,确定所述对象移动的起点和终点,并调取所述对象所在游戏场景的主干道路网;根据所述起点和所述终点,查找所述对象移动在所述主干道路网上所经过的目标主干路径并确定所述目标主干路径上的目标起始路点和目标终止路点;连接起始路径、查找到的所述目标主干路径和终止路径组成所述对象移动的移动路径。通过本发明的实施方式,本发明的方法使得只需响应一次对象移动的请求,对象在移动时就可以避免进入特定区域,从而显著地缩短了系统响应的时间,为用户带来了更好的体验。此外,本发明的实施方式提供了一种游戏中确定对象移动路径的设备。
Description
技术领域
本发明的实施方式涉及游戏领域,更具体地,本发明的实施方式涉及一种游戏中确定移动路径的方法和设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
在各种计算机应用中,游戏应用十分常见。目前,许多游戏应用中,都具有在游戏场景中可以移动的对象,例如玩家角色以及各种NPC(Non-Player Character,非玩家角色)等。由于玩家用户在游戏应用中执行的操作千变万化,各种对象就会被触发从各种不同的起点移动到各种不同的终点,因此,各种对象的移动路径需要在游戏进行过程中根据游戏进行的情况来确定。
在游戏场景中,通常具有一些障碍物,例如山体、悬崖、房屋、岩石等等,游戏进行中,对象在移动时是无法从这些障碍物中间通过的。因此,在为对象确定移动路径时,就需要避开该对象在游戏场景中无法通过的障碍物,即所确定的移动路径不能从障碍物中间穿过。
在现有技术中,已经出现了一些为对象确定移动路径时避开对象无法通过的障碍物的方法。例如,预先将对象无法通过的障碍物预置在游戏场景中,在对象需要移动时,确定对象移动的起点和终点,从起点作为当前位置开始,在当前位置朝向终点的相邻区域中查找无障碍物的位置作为移动路径中的一个路点,然后再以查找到的位置作为当前位置查找移动路径中的下一路点,直至查找到终点,这样查找到的所有路点连接就组成了对象的移动路径。通过这种方式,对象可以绕过预设的障碍物,从而避免一些不合理的移动过程。
发明内容
通常一个游戏应用中具有大量各不相同的游戏场景,而各个游戏场景中又具有很多各不相同的区域,其中,许多特定区域虽然并不是障碍物,但是,对象移动经过特定区域时,只有在特定情况下需要进入特定区域中,而在非特定情况下,进入特定区域是不合理的,需要绕开特定区域。由于对象在特定情况下需要进入特定区域,特定区域不属于障碍物,因此,采用现有技术确定移动路径时,对象移动经过特定区域时在任何情况下都会进入特定区域中。例如,在如图1a-b所示的游戏场景中,河的两岸由桥连接,河水区域属于前述的特定区域,在玩家角色需要在河水区域执行任务或操作时玩家角色需要进入河水区域,但当玩家角色需要从河水的一个岸边过河到达对岸时,玩家人物合理的移动路径应该是如图1a所示从桥上过河,而采用现有技术确定移动路径就会使得玩家角色如图1b所示进入河水区域中穿行到达对岸。又如,高级别敌方NPC所在区域在游戏场景中也属于特定区域,在高级别玩家角色需要与高级别敌方NPC进行战斗时玩家角色经过该特定区域是合理的,但当低级别玩家角色需要从该区域一侧达到另一侧时,采用现有技术确定移动路径也会使低级别玩家角色经过该区域,而对于低级别玩家来说,从高级别敌方NPC所在区域经过是不合理的,合理的移动路径应该是绕开该区域到达另一侧。
由此可见,在现有技术中,为对象确定移动路径时仅仅避开了对象在任何情况下都无法通过的障碍物,但对于游戏场景中不属于障碍物的特定区域,无论是否处于该特定区域对应的特定情况,对象的移动路径中都会经过该特定区域,因此,在非特定情况下为了避免对象移动时经过该特定区域,就需要不断调整对象移动的终点而多次触发对象移动的请求,这就导致了系统需要响应多次触发对象移动的请求,不仅增大了系统的负荷,也延长了系统响应请求而执行对象移动的时间,这是非常令人烦恼的过程。
为此,非常需要一种改进的游戏中确定对象移动路径的方法和设备,以避免现有技术中由于为对象确定移动路径时无法在非特定情况下避开不属于障碍物的特定区域而导致的系统响应触发对象移动的请求次数过多、系统负荷过大以及系统响应请求而执行对象移动的时间过长的缺陷。
在本上下文中,本发明的实施方式期望提供一种游戏中确定对象移动路径的方法和设备。
本发明实施方式的第一方面中,提供了一种游戏中确定对象移动路径的方法,包括:
响应于触发对象移动的请求,确定所述对象移动的起点和终点,并选取所述对象所在游戏场景的主干道路网;所述主干道路网是预先根据所述游戏场景的背景而在所述游戏场景中设置的;
根据所述起点和所述终点,查找所述对象移动在所述主干道路网上所经过的目标主干路径以及所述目标主干路径上的目标起始路点和目标终止路点;
连接起始路径、查找到的所述目标主干路径和终止路径组成所述对象移动的移动路径;所述起始路径为连接所述起点至所述目标起始路点而形成的路径,所述终止路径为连接所述终点至所述目标终止路点而形成的终止路径。
在本发明实施方式的第二方面中,提供了一种游戏中确定对象移动路径的设备,包括:
路网设置模块,用于预先根据所述游戏场景的背景在所述游戏场景中设置主干道路网;
移动响应模块,用于响应于触发对象移动的请求,确定所述对象移动的起点和终点,并选取所述对象所在游戏场景的主干道路网;
主干查找模块,用于根据所述起点和所述终点,查找所述对象移动在所述主干道路网上所经过的目标主干路径以及所述目标主干路径上的目标起始路点和目标终止路点;
移动路径确定模块,用于连接起始路径、查找到的所述目标主干路径和终止路径组成所述对象移动的移动路径;所述起始路径为连接所述起点至所述目标起始路点而形成的路径,所述终止路径为连接所述终点至所述目标终止路点而形成的终止路径。
根据本发明实施方式的游戏中确定对象移动路径的方法和设备,使得玩家角色、NPC等对象在移动时可以沿着根据游戏场景的背景而预设的主干道路网来确定移动路径,由于主干道路网在预设时可以避免经过各种特定区域,因此,只需响应一次对象移动的请求,对象在移动时就可以避免进入特定区域,从而无需不断调整对象移动终点,从而显著地降低了系统响应用户操作的次数,减轻了系统的负荷,并且减少了系统响应用户操作的时间,提高了系统的性能,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1a示意性地示出了一种游戏场景中合理的对象移动路径;
图1b示意性地示出了图1a的游戏场景中采用现有技术确定的对象移动路径;
图2示意性地示出了适于实现本发明实施方式的示例性计算系统100的框图;
图3示意性地示出了本发明的实施方式的一个示例性应用场景的框架示意图;
图4示意性地示出了本发明的实施方式中游戏中确定对象移动路径的方法一实施例的流程图;
图5示意性地示出了本发明的实施方式中主干道路网的设置一实施方式的流程图;
图6示意性地示出了本发明的实施方式中一种用于设置主干道路网的路点编辑器操作界面;
图7示意性地示出了本发明的实施方式中查找目标主干路径和目标起始路点、目标终止路点的一实施方式的流程图;
图8a示意性地示出了本发明的实施方式中线性编码四叉树划分节点区域的一编码示意图;
图8b示意性地示出了本发明的实施方式中线性编码四叉树划分节点区域的另一编码示意图;
图8c示意性地示出了本发明的实施方式中线性编码四叉树划分节点区域的又一编码示意图;
图9示意性地示出了本发明的实施方式中确定目标主干路径一实施方式的流程图;
图10示意性地示出了本发明的实施方式中确定目标主干路径另一实施方式的流程图;
图11示意性地示出了本发明的实施方式中游戏中确定对象移动路径的设备一实施例的结构图;
图12示意性地示出了本发明的实施方式中路网设置模块1101一实施方式的结构图;
图13示意性地示出了本发明的实施方式中主干查找模块1103一实施方式的结构图;
图14示意性地示出了本发明的实施方式中目标选定子模块1303一实施方式的结构图;
图15示意性地示出了本发明的实施方式中目标选定子模块1303又一实施方式的结构图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图2示出了适于实现本发明实施方式的示例性计算系统200的框图。如图2所示,计算系统200可以包括:中央处理单元(CPU)201、随机存取存储器(RAM)202、只读存储器(ROM)203、系统总线204、硬盘控制器205、键盘控制器206、串行接口控制器207、并行接口控制器208、显示控制器209、硬盘210、键盘211、串行外部设备212、并行外部设备213和显示器214。这些设备中,与系统总线204耦合的有CPU201、RAM202、ROM203、硬盘控制器205、键盘控制器206、串行控制器207、并行控制器208和显示控制器209。硬盘210与硬盘控制器205耦合,键盘211与键盘控制器206耦合,串行外部设备212与串行接口控制器207耦合,并行外部设备213与并行接口控制器208耦合,以及显示器214与显示控制器209耦合。应当理解,图2所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法的流程图和设备(或系统)的框图描述本发明的实施方式。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
根据本发明的实施方式,提出了一种游戏中确定对象移动路径的方法和设备。
在本文中,需要理解的是,所涉及的术语“对象移动路径”表示游戏对象被触发对象移动的请求时与该请求对应的移动路径,其中,该对象的移动路径确定过程和对象的移动过程,两者可以是一先一后执行的,例如先确定该对象的移动路径再根据移动路径来移动该对象,或者,两者也可以是交叉执行的,例如先确定移动路径中的某一部分路径或某几个经过点再使对象按照先确定的部分边移动边确定剩余的未确定路径。对于移动路径确定过程和移动过程相互之间采用的执行方式,本发明不做限定。另外,对于对象移动的请求,可以是用户触发的对玩家角色移动的请求,也可以是系统根据用户操作或游戏环境而相应触发的对玩家角色或NPC移动的请求,本发明对于请求移动的对象以及触发请求的主体也不做限定。
还需要理解的是,本文中所涉及的术语“特定区域”是针对“特定情况”而确定的区域。具体地,特定区域表示的是这样一种区域:在其特定情况下进入该区域是合理的,不在其特定情况下进入该区域是不合理的。游戏场景中存在多种不同的“特定区域”,对应着多种不同的“特定情况”,本发明可以适用于各种“特定区域”以及“特定情况”,本发明对此也不做限定。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,游戏场景中存在许多特定区域,游戏对象只在特定情况下才需要进入特定区域,而在非特定情况下进入特定区域则是不合理的,例如在图1所示的游戏场景中,对于河水的区域来说,特定情况即为对象需要到河水中执行任务或操作,当对象不需要到河水中执行任务或操作而只是需要过河时,则对象的移动过程中经过河水区域是不合理的。
采用现有技术来确定对象移动路径时,如果不将特定区域设定为障碍物,则在任何情况下对象移动经过特定区域时都会进入特定区域,如果将特定区域设定为障碍物,则在任何情况下对象移动经过特定区域时都不会进入特定区域。由此可见,仅仅采用现有技术预先设定障碍物的方式来确定对象移动路径,即使对障碍物的设定做了改进,也无法实现对象在特定情况下进入特定区域而在非特定情况下不进入特定区域。
基于本发明人的上述发现和分析,本发明的基本设计思想是:预先为各个游戏场景铺设主干道路网,在对象移动的请求被触发时,选取对象所在的游戏场景的主干道路网,并在主干道路网上查找该对象移动经过的目标主干路径,在查找到时,将该目标主干路径和该对象移动从起点到目标主干路径经过的起始路径、从目标主干路径到终点所经过的终止路径连接,以组成该对象移动的移动路径。由于在预先铺设主干道路网时根据游戏场景的背景可以使主干道路网只经过任何对象在任何情况下都可以进入的区域,而不经过该游戏场景中的特定区域,因此,只需响应一次对象移动的请求,对象移动在非特定情况下的移动路径就可以沿主干道路网而避开不属于障碍物的特定区域,从而使得无需调整对象移动的终点,无需多次触发对象移动的请求,因此,系统就不再需要响应多次触发对象移动的请求。
需要说明的是,在上述基本设计思想中,如果查找不到目标主干路径,则表明当前处于特定情况,对象是需要到特定区域中去的。此时,则可以采用避开预设障碍物的方式去确定对象的移动路径,从而实现对象在特定情况下进入特定区域。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图3,图3是本发明的实施方式的一个示例性应用场景的框架示意图。其中,用户通过用户界面交互设备(例如客户端302)与游戏服务器301进行交互。本领域技术人员可以理解,图3所示的框架示意图仅是本发明的实施方式可以在其中得以实现的一个示例。本发明实施方式的适用范围不受到该框架任何方面的限制。
需要注意的是,此处的客户端302可以是现有的、正在研发的或将来研发的、能够通过任何形式的有线或无线连接(例如,Wi-Fi、LAN、WAN、因特网等)与游戏服务器301交互的任何客户端,包括但不限于:现有的、正在研发的或将来研发的、台式计算机、膝上型计算机、移动终端(包括智能手机、非智能手机、各种平板电脑)等。
还需要注意的是,此处的游戏服务器301仅是现有的、正在研发的或将来研发的、能够向用户提供网络游戏应用的设备的一个示例。本发明的实施方式在此方面不受任何限制。
在图3所示的示例性应用场景中,游戏服务器301可以响应于触发对象移动的请求,确定所述对象移动的起点和终点,并调取所述对象所在游戏场景的主干道路网,其中,所述主干道路网是预先根据所述游戏场景的背景而在所述游戏场景中设置的。然后,游戏服务器301可以根据所述起点和所述终点,查找所述对象移动在所述主干道路网上所经过的目标主干路径并确定所述目标主干路径上的目标起始路点和目标终止路点。最后,游戏服务器301可以连接起始路径、查找到的所述目标主干路径和终止路径组成所述对象移动的移动路径,其中,所述起始路径为连接所述起点至所述目标起始路点而形成的路径,所述终止路径为连接所述终点至所述目标终止路点而形成的终止路径。需要说明的是,此处的请求例如可以是用户通过点击客户端302提供的、用于请求触发玩家角色移动而发送至游戏服务器301的信息,或者,又如可以是游戏服务器301根据用户通过点击客户端302发送来的操作指令而产生的、用于请求触发NPC移动的信息,或者,再如可以是游戏服务器301根据游戏环境的情况或设定而产生的、用于请求触发玩家角色或NPC移动的信息。根据本发明的某些示例性实施方式,用户在客户端302上的点击等操作例如可以是在客户端302上显示的游戏界面中的浮层中进行。
需要注意的是,虽然此处将本发明实施方式的动作描述为由游戏服务器301执行,但是这些动作也可以由客户端设备302执行,当然也可以部分由客户端302执行、部分由游戏服务器301执行。本发明在执行主体方面不受限制,只要执行了本发明实施方式所公开的动作即可。
示例性方法
下面结合图4的应用场景,参考图4来描述根据本发明示例性实施方式的用于游戏中确定对象移动路径的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
参见图4,示出了本发明中游戏中确定对象移动路径的方法一实施例的流程图,本实施例例如具体可以包括:
步骤401、响应于触发对象移动的请求,确定所述对象移动的起点和终点,并调取所述对象所在游戏场景的主干道路网;所述主干道路网是预先根据所述游戏场景的背景而在所述游戏场景中设置的。
其中,触发对象移动的请求中包含有对象所在当前位置和对象移动的目标位置等信息。根据对象所在当前位置可以确定对象移动的起点以及对象所在的游戏场景;根据对象移动的目标位置可以确定对象移动的终点。进一步地,根据对象所在的游戏场景,可以调取到该游戏场景对应的主干道路网。例如,触发对象移动的请求是用户通过点击客户端302而发送给游戏服务器301提供的、用于触发该用户的玩家角色移动的请求信息,则该请求信息中可以记载该玩家角色的当前位置和移动的目标位置。
需要说明的是,主干道路网需要预先在游戏场景中设置。在设置时,可以根据游戏场景的背景,使主干道路网只经过任何对象在任何情况下都可以进入的区域,而不经过该游戏场景中的特定区域。其中,主干道路网可以是由路点和各路点之间的连线组成,则主干道路网的设置即为设置路点和路点之间的连线。具体地,如图5所示的本实施例中主干道路网的设置一实施方式,例如可以包括:
步骤501、响应于对主干道路网中路点设置的操作,根据所述主干道路网所在游戏场景的背景,在所述游戏场景中设置路点。
其中,所述对主干道路网中路点设置的操作可以包括:增加主干道路网中路点的操作,和/或,删除主干道路网中路点的操作。
步骤502、响应于对主干道路网中路点连接设置的操作,根据所述主干道路网所在游戏场景的背景,在所述游戏场景中设置各路点之间的连接关系。
其中,所述对主干道路网中路点连接的操作可以包括:建立主干道路网中路点间连接的操作,和/或,删除主干道路网中路点间连接的操作。
在本实施方式中,对路点和路点连接的设置是通过对操作的响应来实现的,该操作例如可以是游戏开发用户在制作游戏时的操作,或者,又如可以是游戏玩家用户在游戏前的初始设置时的操作。因此,可以理解的是,对路点设置的步骤501和对路点连接设置的步骤502,两者之间的执行方式是由操作用户的设置操作而决定的,例如两者可以互相交叉执行,此时设置操作是边设置路点边路点连接的;或者,又如可以先执行步骤501设置完所有的路点再执行步骤502设置各路点之间的连接。
为便于各类用户对主干道路网的设置进行操作,例如可以为用户提供一种路点编辑器来完成设置。参见图6,该路点编辑器的显示界面提供了多个操作的快捷链接,用于在用户点击时触发相应的操作,例如点击“增加路点”的快捷链接可以在当前游戏场景中增加一个路点,点击“删除路点”的快捷链接可以删除当前选中的路点,点击“建立连接”的快捷链接可以连接当前选中的两个路点或连接当前选中路点与上次选中路点,点击“删除连接”的快捷链接可以删除当前选中的两个路点的连线或删除当前选中路点与上次选中路点之间的连线,等等。此外,还可以在该路点编辑器的显示界面上显示当前选中的路点和上次选中的路点的相关信息,以及,屏幕上当前显示出的所有路点的信息。其中,显示的各路点信息可以包括该路点的编号和坐标。另外,在游戏场景中可以显示当前已设置的路点及连线,其中,各路点可以标注各自的编号。
需要说明的是,在主干道路网设置完毕以后需要将其保存下来,以便游戏玩家用户在游戏运行过程中的调用。具体地,主干道路网可以由各条道路的信息组成,各条道路信息可以是该道路上各路点的编号按照路点的连接关系排列而成的路点集合,以及,还可以进一步包括该道路的路径长度、各路点的坐标和/或游戏场景的编号,等等。
接着返回图4,步骤401执行完成之后,执行步骤402。
步骤402、根据所述起点和所述终点,查找所述对象移动在所述主干道路网上所经过的目标主干路径,并确定所述目标主干路径上的目标起始路点和目标终止路点。
其中,如果能够查找到目标主干路径和目标起始路点、目标终止路点,则表明对象处于非特定情况,不需要进入该游戏场景中的特定区域,则可以沿查找到的目标主干路径来确定对象的移动路径;如果查找不到目标主干路径和目标起始路点、目标终止路点,则表明对象处于特定情况,需要进入该游戏场景中的特定区域,则可以采用避开预设障碍物的方式确定移动路径。由于查找不到的情况采用的是与现有技术相同的移动路径确定方式,本实施例在此不再赘述。
对于起点和终点来说,如果起点和终点为主干道路网上的路点,则可以直接将其所在的路点确定为目标起始路点和目标终止路点。但是,通常情况下起点和终点都不属于主干道路上的路点。为保证目标起始路点和目标终止路点能够被确定,可以分别在起点和终点的附近区域中查找主干道路上的路点作为目标起始路点和目标终止路点。
参见图7,示出了本实施例中查找目标主干路径和目标起始路点、目标终止路点的一实施方式的流程图。在本实施方式中,目标起始路点和目标终止路点是在起点和终点的附近区域中,步骤402例如具体可以包括:
步骤701、在所述游戏场景中,确定所述起点所在的起点搜集区域和所述终点所在的终点搜集区域。
其中,起点和终点所在的搜集区域可以根据游戏场景中预先划分的多个节点区域来确定。在划分节点区域时,可以是将游戏场景划分成多个形状大小完全相同的节点区域,例如多个相同的正方形区域,或者,也可以根据主干道路网来划分节点区域,例如按照路点分布的密集程度划分成大小不一的正方形区域,路点密集的地方节点区域小,路点稀疏的地方节点区域大。为减少游戏运行过程中系统选择目标主干路径所需要遍历的初始路径数量,可以使每个节点区域中的路点数量尽可能少,在实际执行时,可以使所述游戏场景的各个节点区域中,属于主干道路网上的路点的数量都不超过预设的点数阈值。
具体地,例如可以采用一种线性编码四叉树的方式划分节点区域:如图8a所示,先将游戏场景的完整区域划分为根节点的4个节点区域,其中,东北节点编码为1,东南节点编码为3,西北节点编码为0,西南节点编码为2;当其中有节点区域内的主干道路网上路点的数量超过预设的点数阈值时,将该节点区域再次划分为4个子节点区域,4个子节点的编码可以是在其原节点编码的后增加一位,增加的一位同样按照前述的方向进行编码;然后以此再对新划分出的子节点判断是否有节点的区域内路点数量超过点数阈值,如果是则再继续划分子节点,直至所有节点区域内的路点数量均不超过点数阈值为孩子。如图8b所示,以根节点1为例,其划分出的子节点中,东北子节点编码为11,东南子节点编码为13,西北子节点编码为10,西南子节点编码为12;如图8c所示,进一步以子节点13为例,其划分出的子节点中,东北子节点编码为131,东南子节点编码为133,西北子节点编码为130,西南子节点编码为132。
需要说明的是,在预先对游戏场景进行了节点区域划分的基础上,起点和终点的搜集区域,可以只是起点所在的起始节点区域和终点所在的终止节点区域,但这样搜集区域太小且有些节点区域内并无路点。为此,可以使起点搜集区域包括起点所在的起始节点区域和与该该起始节点区域相邻的节点区域,并且,使终点搜集区域包括终点所在的终止节点区域和与该终止节点区域相邻的节点区域。其中,某节点区域的相邻节点区域(下称领域)可以包括与其存在重叠边的四个边领域,即东边领域、南边领域、西边领域和北边领域。
当搜集区域包括领域时,对搜集区域的确定可以是先根据起点和终点的坐标确定起始节点区域和终止节点区域,再查找起始节点区域和终止节点区域两者的领域。其中,对于起始节点区域和终止节点区域的领域,其编码可以根据起始节点区域和终止节点区域的编码来确定。例如,采用前述线性编码四叉树的方式划分的节点区域,当需要计算某一节点区域的领域编码时,设该节点区域是位于第n层的节点,A为其编码,该编码即为A=q1q2...qn,根据A的末位qn值的不同,选择对应A的qn值的计算方式来计算该节点区域的领域:
(1)若qn=0,采用第一计算方式:
东边邻域:A+1;
南边邻域:A+2;
西边邻域:从编码的末位qn按从右到左的顺序扫描,直到找到第一个不属于西部集合的编码qi(即qi为1或3,而qi+1至qn都为0或2),然后q1至qi-1值不变,qi值减1,qi+1至qn的值均加1,此时得到的编码即为西边邻域编码;
北边邻域:从编码的末位qn按从右到左的顺序扫描,直到找到第一个不属于北部集合的编码qi(即qi为2或3,而qi+1至qn都为0或1),然后q1至qi-1值不变,qi值减2,qi+1至qn的值均加2,此时得到的编码即为北边邻域编码;
(2)若qn=1,采用第二计算方式:
东边邻域:从编码的末位qn按从右到左的顺序扫描,直到找到第一个不属于东部集合的编码qi(即qi为0或2,而qi+1至qn都为1或3),然后q1至qi-1值不变,qi值加1,qi+1至qn的值均减1,此时得到的编码即为东边邻域编码;
南边邻域:A+2;
西边邻域:A-1;
北边邻域:从编码的末位qn按从右到左的顺序扫描,直到找到第一个不属于北部集合的编码qi(即qi为2或3,而qi+1至qn都为0或1),然后q1至qi-1值不变,qi值减2,qi+1至qn的值均加2,此时得到的编码极为北边邻域编码;
(3)若qn=2,采用第三计算方式:
东边邻域:A+1;
南边邻域:从编码的末位qn按从右到左的顺序扫描,直到找到第一个不属于南部集合的编码qi(即qi为0或1,而qi+1至qn都为2或3)的编码qi,然后q1至qi-1值不变,qi值加2,qi+1至qn的值均减2,此时得到的编码即为南边邻域编码;
西边邻域:从编码的末位qn按从右到左的顺序扫描,直到找到第一个不属于西部集合的编码qi(即qi为1或3,而qi+1至qn都为0或2),然后q1至qi-1值不变,qi值减1,qi+1至qn的值均加1,此时得到的编码即为南边邻域编码;
北边邻域:A-2;
(4)若qn=3,采用第四计算方式:
东边邻域:从编码的末位qn按从右到左的顺序扫描,直到找到第一个不属于东部集合的编码qi(即qi为0或2,而qi+1至qn都为1或3),然后q1至qi-1值不变,qi值加1,qi+1至qn的值均减1,此时得到的编码即为东边邻域编码;
南边邻域:从编码的末位qn按从右到左的顺序扫描,直到找到第一个不属于南部集合的编码qi(即qi为0或1,而qi+1至qn都为2或3),然后q1至qi-1值不变,qi值加2,qi+1至qn的值均减2,此时得到的编码即为南边邻域编码;
西边邻域:A-1;
北边邻域:A-2。
可以理解的是,如果通过上述计算方式计算出的领域编码在游戏场景中查找不到,说明该节点区域为边界区域,查找不到的邻域即为不存在的区域。
另外,该节点区域的领域,除了包括四个边领域外,进一步还可以包括与其角的顶点有接触的四个角邻域,即东南角领域,东北领域,西南领域和西北领域。如节点区域的领域既包括四个边领域也包括四个角领域时,可以在采用前述计算方式计算出边领域编码之后,根据边领域的编码再通过前述计算方式计算出角领域编码。例如,东南角领域可通过计算东边领域的南边领域求出,或者也可通过计算南边领域的东边领域求出。
此外,在确定该节点区域的领域之后,为减少初始路点的数量,则如果该节点区域的邻域有子节点,则还可以进一步将范围向该节点区域收窄,例如,在计算得到东边邻域以后,可以将东边邻域向西部集合展开,一直展开到最后一层子节点,这样获得的区域就是最贴近该节点区域同时也是最小的领域。
步骤702、在所述起点搜集区域中查找属于主干道路网上的路点,作为初始起始路点,并在所述终点搜集区域中查找属于主干道路网上的路点,作为初始终止路点。
需要说明的是,如果查找不到初始起始路点或初始终止路点,则可以按照避开预设障碍物的方式为对象确定移动路径。
步骤703、各个初始起始路点分别与各个初始终止路点一一对应地组成起止路点集合,从各个所述起止路点集合对应在主干道路网上的初始主干路径中选定目标主干路径,并确定所述目标主干路径对应的目标起始路点和目标终止路点。
在搜集区域中查找初始路点时,查找到的初始路点可能都有多个,其中每一个初始起始路点和每一个初始终止路点之间都可以形成一条主干道路网上的初始主干路径,所以查找到的初始主干路径就有多条,此时就需要从多条初始主干路径中选择一条作为目标主干路径,而该目标主干路径的起始路点和终止路点即为目标起始路点和目标终止路点。
在从多条路径和多个路点中选择目标主干路径与目标起始路点和终止路点时,可以先确定两个目标路点再由两个目标路点确定目标主干路径,或者也可以先确定目标主干路径再由目标主干路径确定两个目标路点。例如,目标主干路径和两个目标路点可以都是随机确定的;又如,两个目标路点可以是距离起点和终点最近的路点,然后由两个目标路点确定目标主干路径;再如,目标主干路径可以是查找的所有路径中路径距离最短的路径,然后由目标主干路径确定两个目标路点。
为使对象能够通过最短的路径到达终端,本实施方式中以最短的初始主干路径作为目标主干路径,提供了两种可能的从初始主干路径中确定目标主干路径的实施方式。需要说明的是,对于主干道路网上任意两个不同的路点之间,由于主干道路网上各条道路相互衔接,连接两个路点的主干路径一般都有多条,为了使得路径距离最短,以下两种实施方式中,每对初始起始路点和初始终止路点之间的初始主干路径,都是该对路点之间在主干道路网上的最短路径。
第一种确定方式,是预先计算主干道路网上每两个路点之间连接的最短路径及其路径长度,并以该最短路径、路径长度与其对应的两个路点之间的对应关系作为第一路径信息保存,在需要确定目标主干路径时,根据初始起始路点和初始终止路点,从第一路径信息中查找出其最短路径作为其初始主干路径。参见图9,第一种确定方式例如具体可以包括:
步骤901、从预先保存的第一路径信息中,确定各个所述起止路点集合中起始路点与终止路点之间在所述主干道路网上的最短路径,作为各个所述起止点集合对应的初始主干路径。
其中,该预先保存的第一路径信息中,需要记载有主干道路网上每对不同路点之间的最短路径及该最短路径的路径长度,以便在确定时可以根据起始路点和终止路点就可以直接查找到该两路点之间的最短路径。其中,最短路径在第一路径信息中可以是在该路径上的各个路点的编号按照连接的顺序组成的编号集合。为预先保存第一路径信息,需要在预先设置好主干道路网时,就计算出该主干道路网上每对不同的路点之间的最短路径及其长度;计算方式,例如可以先从主干道路网上确定出每条道路的端点(度数不等于2的路点,也即一条道路的起止点),然后计算出所有路点的连通矩阵,再利用多源最短路径算法(例如弗洛伊德算法)计算出每对端点之间的最短路径,进而计算出每对路点之间的最短路径,即为该两个路点分别到其最近的端点之间的连接路径以及该对最近的端点之间的最短路径组成的主干路径。
另外,第一路径信息中对应于每条最短路径,可以以该路径的起始路点和终止路点的编号为其搜索标记,在查找时就可以根据初始起始路点和初始终止路点查找到其对应的最短路径。
步骤902、比较各个初始主干路径的路径长度,将路径长度最小的初始主干路径确定为所述目标主干路径。
步骤903、将所述目标主干路径对应的初始起始路点作为目标起始路点,将所述目标主干路径对应的初始终止路点作为目标终止路点。
通过第一种确定方式来确定目标主干路径,游戏运行过程中可以不必再计算初始起始路点和初始终止路点之间的最短路径,而是直接根据初始起始路点和初始终止路点从第一路径信息中查找到对应的最短路径,从这方面来说减少了游戏运行过程中系统的计算量,提高了系统运行的效率,减少了响应对象移动的时间。但是,由于主干道路网上有大量的路点,这不仅导致预先计算每对不同路点之间的最短路径十分繁琐,更重要的是,游戏运行过程中查找初始主干路径需要在第一路径信息中遍历大量的最短路径的相关信息,从这方面来说使得系统查询的速度十分缓慢,这不仅导致响应对象移动的延迟时间增长,也增加了系统的负担。为了解决这一问题,可以采用第二种确定方式来确定目标主干路径。
第二种确定方式,是预先只计算主干道路网上道路端点之间连接的最短路径及其路径长度,并以该最短路径、路径长度与其对应的两个端点之间的对应关系作为第二路径信息保存,在需要确定目标主干路径时,先查找所有初始起始路点和所有初始终止路点对应的所有端点,再根据这些端点中每两个不同端点之间在第二路径信息中记载的最短路径,来直接确定目标主干路径而不再确定初始路点路径。参见图10,第二种确定方式例如具体可以包括:
步骤1001、将各个初始起始路点所在的主干道路的端点作为初始起始端点,将各个初始终止路点所在的主干道路的端点作为初始终止端点。
对于位于一条道路中的路点,其对应的端点为该条道路两端的路点,当然,对于道路两端的路点来说,其对应的端点即为该路点本身。其中,对端点的识别,可以是将度数不为2的路点识别为端点。路点的度数表示与该路点连接其他路点的数量,如果度数不为2时可以表示该路点作为端点连接的道路数量,但度数为2则表示该路点位于一条道路的中间,不为端点。
另外,本实施方式中,一条道路中,只有其两端的路点度数不为2,其余路点度数均为2,也即,一条道路中间的路点均不属于其他道路,或者说,中间的路点均不为中转点。
步骤1002、各个初始起始端点分别与各个初始终止端点一一对应地组成起止端点集合,并从预先保存的第二路径信息中,确定各个所述起止端点集合中起始端点与终止端点之间在所述主干道路网上的最短路径,作为各个所述起止端点集合对应的初始端点间路径。
两个路点之间在主干道路网上存在多条不同的路径连通,原因在于两个路点之间的端点连接着多条道路,而两个路点与其所在道路的端点之间的路径则是不变的。由此可见,只需确定初始起始路点和初始终止路点所在道路的端点之间的最短路径即可,因此预先保存的第二路径信息中只需记载每对不同端点之间的最短路径即可。可以理解的是,每个路点一般都对应着两个端点,为了简化系统需要处理的计算,可以不区分初始起始端点对应的初始起始路点和初始终止终点对应的初始终止路点,而使各个初始起始端点和各个初始终止端点一一对应地组成起止端点集合,来确定每个起止端点集合对应的初始端点间路径。
其中,该预先保存的第二路径信息中,需要记载有主干道路网上每对不同端点之间的最短路径及该最短路径的路径长度,以便在确定时可以根据初始起始端点和初始终止端点就可以直接查找到该两端点之间的最短路径。其中,该最短路径在第二路径信息中可以是在该路径上的各个路点的编号按照连接的顺序组成的编号集合。为预先保存第二路径信息,需要在预先设置好主干道路网时,就计算出该主干道路网上每对不同的端点之间的最短路径及其长度;计算方式,例如可以先从主干道路网上确定出每条道路的端点,然后计算出所有路点的连通矩阵,再利用多源最短路径算法(例如弗洛伊德算法)计算出每对端点之间的最短路径及其路径长度。
另外,第一路径信息中对应于每条最短路径,可以以该路径的起始端点和终止端点的编号为其搜索标记,在查找时就可以根据初始起始端点和初始终止端点查找到其对应的最短路径及其路径长度。由于第二路径信息中只需要每对端点之间的最短路径,因此,预先只需要计算端点间最短路径而不需要计算其他路点间最短路径,这不但使得预先计算大大地简化了,也使得预先计算的结果需要占用的存储空间大大减小。
步骤1003、比较各个初始端点间路径的路径长度,将路径长度最小的初始端点间路径确定为目标端点间路径,并将所述目标端点间路径的初始起始端点确定为目标起始端点,将所述目标终止端点确定为目标终止端点。
需要说明的是,本实施方式是通过比较各对初始起始端点和初始终止端点之间的初始端点间路径的路径长度来直接确定目标主干路径的,而可以不需要确定各对初始起始路点和初始终止路点之间的初始主干路径。
步骤1004、将所述目标起始端点对应的初始起始路点作为目标起始路点,将所述目标终止端点对应的初始终止路点作为目标终止路点,并以所述目标起始路点与所述目标起始端点之间的主干道路、所述目标端点间路径以及所述目标终止端点与所述目标终止路点之间的主干道路,组成所述目标主干路径。
其中,所述目标起始端点对应的初始起始路点,即为位于目标起始端点所在道路上的初始起始路点。同理,所述目标终止端点对应的初始终止路点,即为位于目标终止端点所在道路上的初始终止路点。
通过第二种确定方式来确定目标主干路径,相比于第一种确定方式,由于主干道路网中端点数量远远小于路点的数量,因此预先需要计算的最短路径数量大大减少,简化了预先计算的复杂程度,并且,在游戏运行的过程中,由于查找初始端点间路径所需遍历的第二路径信息中最短路径数量大大减少,可以加快系统查询的速度、缩短系统响应对象移动的延迟时间,并减小系统的负担。
步骤403、连接起始路径、查找到的所述目标主干路径和终止路径组成所述对象移动的移动路径;所述起始路径为连接所述起点至所述目标起始路点而形成的路径,所述终止路径为连接所述终点至所述目标终止路点而形成的终止路径。
其中,对于起始路径和终止路径,均可以是采用避开预设障碍物的方式来确定。
另外,本实施例中,完成步骤403而确定了对象移动的移动路径以后,还可以进一步判断该移动路径与该对象移动全程采用避开预设障碍物的方式确定的移动路径相比是否路径距离过大,如果过大,可以认为此时处于非特定情况,则可以采用避开预设障碍物的方式确定的移动路径来执行当前的对象移动。
通过本实施例的技术方案,由于在预先铺设主干道路网时根据游戏场景的背景可以使主干道路网只经过任何对象在任何情况下都可以进入的区域,而不经过该游戏场景中的特定区域,因此,只需响应一次对象移动的请求,对象移动在非特定情况下的移动路径就可以沿主干道路网而避开不属于障碍物的特定区域,从而使得无需调整对象移动的终点,无需多次触发对象移动的请求,因此,系统就不再需要响应多次触发对象移动的请求。
示例性设备
在介绍了本发明示例性实施方式的方法之后,接下来,参考图11对本发明示例性实施方式的、用于游戏中确定对象移动路径的设备。
参见图11,示出了本发明中游戏中确定对象移动路径的设备一实施例的结构图,本实施例例如可以包括:
路网设置模块1101,用于预先根据所述游戏场景的背景在所述游戏场景中设置主干道路网;
移动响应模块1102,用于响应于触发对象移动的请求,确定所述对象移动的起点和终点,并选取所述对象所在游戏场景的主干道路网;
主干查找模块1103,用于根据所述起点和所述终点,查找所述对象移动在所述主干道路网上所经过的目标主干路径,并确定所述目标主干路径上的目标起始路点和目标终止路点;
移动路径确定模块1104,用于连接起始路径、查找到的所述目标主干路径和终止路径组成所述对象移动的移动路径;所述起始路径为连接所述起点至所述目标起始路点而形成的路径,所述终止路径为连接所述终点至所述目标终止路点而形成的终止路径。
参见图12,示出了本实施例中路网设置模块1101一实施方式的结构图,本实施方式例如可以包括:
路点设置子模块1201,用于响应于对主干道路网中路点设置的操作,根据所述主干道路网所在游戏场景的背景,在所述游戏场景中设置路点;
连接设置子模块1202,用于响应于对主干道路网中路点连接设置的操作,根据所述主干道路网所在游戏场景的背景,在所述游戏场景中设置各路点之间的连接关系。
其中,可选地,所述对主干道路网中路点设置的操作,可以包括:增加主干道路网中路点的操作,和/或,删除主干道路网中路点的操作;所述对主干道路网中路点连接的操作,可以包括:建立主干道路网中路点间连接的操作,和/或,删除主干道路网中路点间连接的操作。
参见图13,示出了本实施例中所述主干查找模块1103一实施方式的结构图,本实施方式例如可以包括:
搜集区确定子模块1301,用于在所述游戏场景中,确定所述起点所在的起点搜集区域和所述终点所在的终点搜集区域;
初始路点查找子模块1302,用于在所述起点搜集区域中查找属于主干道路网上的路点作为初始起始路点,和,用于在所述终点搜集区域中查找属于主干道路网上的路点作为初始终止路点;
目标选定子模块1303,用于各个初始起始路点分别与各个初始终止路点一一对应地组成起止路点集合,从各个所述起止路点集合对应在主干道路网上的初始主干路径中选定目标主干路径,并确定所述目标主干路径对应的目标起始路点和目标终止路点。
其中,可选地,所述游戏场景可以具有预先根据所述主干道路网而划分的多个节点区域;所述起点搜集区域可以包括:所述起点所在的起始节点区域,和,与所述起始节点区域相邻的节点区域;所述终点搜集区域可以包括:所述终点所在的终止节点区域,和,与所述终止节点区域相邻的节点区域。
其中,可选地,所述游戏场景的各个节点区域中,属于主干道路网上的路点的数量可以都不超过预设的点数阈值。
参加图14,示出了本实施例中所述目标选定子模块1303一实施方式的结构图,本实施方式例如可以包括:
初始主路确定子模块1401,用于各个初始起始路点分别与各个初始终止路点一一对应地组成起止路点集合,并从预先保存的第一路径信息中,确定各个所述起止路点集合中起始路点与终止路点之间在所述主干道路网上的最短路径,作为各个所述起止点集合对应的初始主干路径;
第一目标主路确定子模块1402,用于比较各个初始主干路径的路径长度,将路径长度最小的初始主干路径确定为所述目标主干路径;
第一目标路点确定子模块1403,用于将所述目标主干路径对应的初始起始路点作为目标起始路点,和,用于将所述目标主干路径对应的初始终止路点作为目标终止路点。
参加图15,示出了本实施例中所述目标选定子模块1303又一实施方式的结构图,本实施方式例如可以包括:
初始端点确定子模块1501,用于将各个初始起始路点所在的主干道路的端点作为初始起始端点,和,用于将各个初始终止路点所在的主干道路的端点作为初始终止端点;
初始端路确定子模块1502,用于各个初始起始端点分别与各个初始终止端点一一对应地组成起止端点集合,并从预先保存的第二路径信息中,确定各个所述起止端点集合中起始端点与终止端点之间在所述主干道路网上的最短路径,作为各个所述起止端点集合对应的初始端点间路径;
目标端路确定子模块1503,用于比较各个初始端点间路径的路径长度,将路径长度最小的初始端点间路径确定为目标端点间路径;
目标端点确定子模块1504,用于将所述目标端点间路径的初始起始端点确定为目标起始端点,将所述目标终止端点确定为目标终止端点;
第二目标路点确定子模块1505,用于将所述目标起始端点对应的初始起始路点作为目标起始路点,将所述目标终止端点对应的初始终止路点作为目标终止路点;
第二目标主路确定子模块1506,用于以所述目标起始路点与所述目标起始端点之间的主干道路、所述目标端点间路径以及所述目标终止端点与所述目标终止路点之间的主干道路,组成所述目标主干路径。
通过本实施例的技术方案,由于在预先铺设主干道路网时根据游戏场景的背景可以使主干道路网只经过任何对象在任何情况下都可以进入的区域,而不经过该游戏场景中的特定区域,因此,只需响应一次对象移动的请求,对象移动在非特定情况下的移动路径就可以沿主干道路网而避开不属于障碍物的特定区域,从而使得无需调整对象移动的终点,无需多次触发对象移动的请求,因此,系统就不再需要响应多次触发对象移动的请求。
应当注意,尽管在上文详细描述中提及了游戏中确定对象移动路径的设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (16)
1.一种游戏中确定对象移动路径的方法,包括:
响应于触发对象移动的请求,确定所述对象移动的起点和终点,并调取所述对象所在游戏场景的主干道路网;所述主干道路网是预先根据所述游戏场景的背景而在所述游戏场景中设置的;所述主干道路网由路点和各路点之间的连线组成,所述主干道路网仅经过任何对象在任何情况下都可进入的区域;
根据所述起点和所述终点,查找所述对象移动在所述主干道路网上所经过的目标主干路径,并确定所述目标主干路径上的目标起始路点和目标终止路点;
连接起始路径、查找到的所述目标主干路径和终止路径组成所述对象移动的移动路径;所述起始路径为连接所述起点至所述目标起始路点而形成的路径,所述终止路径为连接所述终点至所述目标终止路点而形成的终止路径。
2.根据权利要求1所述的方法,所述主干道路网的设置,包括:
响应于对主干道路网中路点设置的操作,根据所述主干道路网所在游戏场景的背景,在所述游戏场景中设置路点;
响应于对主干道路网中路点连接设置的操作,根据所述主干道路网所在游戏场景的背景,在所述游戏场景中设置各路点之间的连接关系。
3.根据权利要求2所述的方法,所述对主干道路网中路点设置的操作,包括:增加主干道路网中路点的操作,和/或,删除主干道路网中路点的操作;所述对主干道路网中路点连接的操作,包括:建立主干道路网中路点间连接的操作,和/或,删除主干道路网中路点间连接的操作。
4.根据权利要求1所述的方法,所述根据所述起点和所述终点,查找所述对象移动在所述主干道路网上所经过的目标主干路径,并确定所述目标主干路径上的目标起始路点和目标终止路点,包括:
在所述游戏场景中,确定所述起点所在的起点搜集区域和所述终点所在的终点搜集区域;
在所述起点搜集区域中查找属于主干道路网上的路点,作为初始起始路点,并在所述终点搜集区域中查找属于主干道路网上的路点,作为初始终止路点;
各个初始起始路点分别与各个初始终止路点一一对应地组成起止路点集合,从各个所述起止路点集合对应在主干道路网上的初始主干路径中选定目标主干路径,并确定所述目标主干路径对应的目标起始路点和目标终止路点。
5.根据权利要求4所述的方法,所述游戏场景具有预先根据所述主干道路网而划分的多个节点区域;
所述起点搜集区域包括:所述起点所在的起始节点区域,和,与所述起始节点区域相邻的节点区域;
所述终点搜集区域包括:所述终点所在的终止节点区域,和,与所述终止节点区域相邻的节点区域。
6.根据权利要求5所述的方法,所述游戏场景的各个节点区域中,属于主干道路网上的路点的数量都不超过预设的点数阈值。
7.根据权利要求4所述的方法,所述从各个所述起止路点集合对应在主干道路网上的初始主干路径中选定目标主干路径,并确定所述目标主干路径对应的目标起始路点和目标终止路点,包括:
从预先保存的第一路径信息中,确定各个所述起止路点集合中起始路点与终止路点之间在所述主干道路网上的最短路径,作为各个所述起止点集合对应的初始主干路径;
比较各个初始主干路径的路径长度,将路径长度最小的初始主干路径确定为所述目标主干路径;
将所述目标主干路径对应的初始起始路点作为目标起始路点,将所述目标主干路径对应的初始终止路点作为目标终止路点。
8.根据权利要求4所述的方法,所述各个初始起始路点分别与各个初始终止路点一一对应地组成起止路点集合,从各个所述起止路点集合对应在主干道路网上的初始主干路径中选定目标主干路径,并确定所述目标主干路径对应的目标起始路点和目标终止路点,包括:
将各个初始起始路点所在的主干道路的端点作为初始起始端点,将各个初始终止路点所在的主干道路的端点作为初始终止端点;
各个初始起始端点分别与各个初始终止端点一一对应地组成起止端点集合;
从预先保存的第二路径信息中,确定各个所述起止端点集合中起始端点与终止端点之间在所述主干道路网上的最短路径,作为各个所述起止端点集合对应的初始端点间路径;
比较各个初始端点间路径的路径长度,将路径长度最小的初始端点间路径确定为目标端点间路径,并将所述目标端点间路径的初始起始端点确定为目标起始端点,将所述目标终止端点确定为目标终止端点;
将所述目标起始端点对应的初始起始路点作为目标起始路点,将所述目标终止端点对应的初始终止路点作为目标终止路点,并以所述目标起始路点与所述目标起始端点之间的主干道路、所述目标端点间路径以及所述目标终止端点与所述目标终止路点之间的主干道路,组成所述目标主干路径。
9.一种游戏中确定对象移动路径的设备,包括:
路网设置模块,用于预先根据所述游戏场景的背景在所述游戏场景中设置主干道路网;所述主干道路网由路点和各路点之间的连线组成,所述主干道路网仅经过任何对象在任何情况下都可进入的区域;
移动响应模块,用于响应于触发对象移动的请求,确定所述对象移动的起点和终点,并选取所述对象所在游戏场景的主干道路网;
主干查找模块,用于根据所述起点和所述终点,查找所述对象移动在所述主干道路网上所经过的目标主干路径,并确定所述目标主干路径上的目标起始路点和目标终止路点;
移动路径确定模块,用于连接起始路径、查找到的所述目标主干路径和终止路径组成所述对象移动的移动路径;所述起始路径为连接所述起点至所述目标起始路点而形成的路径,所述终止路径为连接所述终点至所述目标终止路点而形成的终止路径。
10.根据权利要求9所述的设备,所述路网设置模块,包括:
路点设置子模块,用于响应于对主干道路网中路点设置的操作,根据所述主干道路网所在游戏场景的背景,在所述游戏场景中设置路点;
连接设置子模块,用于响应于对主干道路网中路点连接设置的操作,根据所述主干道路网所在游戏场景的背景,在所述游戏场景中设置各路点之间的连接关系。
11.根据权利要求10所述的设备,所述对主干道路网中路点设置的操作,包括:增加主干道路网中路点的操作,和/或,删除主干道路网中路点的操作;所述对主干道路网中路点连接的操作,包括:建立主干道路网中路点间连接的操作,和/或,删除主干道路网中路点间连接的操作。
12.根据权利要求9所述的设备,所述主干查找模块,包括:
搜集区确定子模块,用于在所述游戏场景中,确定所述起点所在的起点搜集区域和所述终点所在的终点搜集区域;
初始路点查找子模块,用于在所述起点搜集区域中查找属于主干道路网上的路点作为初始起始路点,和,用于在所述终点搜集区域中查找属于主干道路网上的路点作为初始终止路点;
目标选定子模块,用于各个初始起始路点分别与各个初始终止路点一一对应地组成起止路点集合,并从各个所述起止路点集合对应在主干道路网上的初始主干路径中选定目标主干路径,并确定目标主干路径对应的目标起始路点和目标终止路点。
13.根据权利要求12所述的设备,所述游戏场景具有预先根据所述主干道路网而划分的多个节点区域;
所述起点搜集区域包括:所述起点所在的起始节点区域,和,与所述起始节点区域相邻的节点区域;
所述终点搜集区域包括:所述终点所在的终止节点区域,和,与所述终止节点区域相邻的节点区域。
14.根据权利要求13所述的设备,所述游戏场景的各个节点区域中,属于主干道路网上的路点的数量都不超过预设的点数阈值。
15.根据权利要求12所述的设备,所述目标选定子模块,包括:
初始主路确定子模块,用于各个初始起始路点分别与各个初始终止路点一一对应地组成起止路点集合,并从预先保存的第一路径信息中,确定各个所述起止路点集合中起始路点与终止路点之间在所述主干道路网上的最短路径,作为各个所述起止点集合对应的初始主干路径;
第一目标主路确定子模块,用于比较各个初始主干路径的路径长度,将路径长度最小的初始主干路径确定为所述目标主干路径;
第一目标路点确定子模块,用于将所述目标主干路径对应的初始起始路点作为目标起始路点,和,用于将所述目标主干路径对应的初始终止路点作为目标终止路点。
16.根据权利要求12所述的设备,所述目标选定子模块,包括:
初始端点确定子模块,用于将各个初始起始路点所在的主干道路的端点作为初始起始端点,和,用于将各个初始终止路点所在的主干道路的端点作为初始终止端点;
初始端路确定子模块,用于各个初始起始端点分别与各个初始终止端点一一对应地组成起止端点集合,并从预先保存的第二路径信息中,确定各个所述起止端点集合中起始端点与终止端点之间在所述主干道路网上的最短路径,作为各个所述起止端点集合对应的初始端点间路径;
目标端路确定子模块,用于比较各个初始端点间路径的路径长度,将路径长度最小的初始端点间路径确定为目标端点间路径;
目标端点确定子模块,用于将所述目标端点间路径的初始起始端点确定为目标起始端点,将所述目标终止端点确定为目标终止端点;
第二目标路点确定子模块,用于将所述目标起始端点对应的初始起始路点作为目标起始路点,将所述目标终止端点对应的初始终止路点作为目标终止路点;
第二目标主路确定子模块,用于以所述目标起始路点与所述目标起始端点之间的主干道路、所述目标端点间路径以及所述目标终止端点与所述目标终止路点之间的主干道路,组成所述目标主干路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310346475.1A CN103714234B (zh) | 2013-08-09 | 2013-08-09 | 一种游戏中确定对象移动路径的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310346475.1A CN103714234B (zh) | 2013-08-09 | 2013-08-09 | 一种游戏中确定对象移动路径的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714234A CN103714234A (zh) | 2014-04-09 |
CN103714234B true CN103714234B (zh) | 2017-01-25 |
Family
ID=50407204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310346475.1A Active CN103714234B (zh) | 2013-08-09 | 2013-08-09 | 一种游戏中确定对象移动路径的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103714234B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107292107A (zh) * | 2014-12-02 | 2017-10-24 | 厦门飞游信息科技有限公司 | 一种地图寻路方法、设备及计算终端 |
CN104645616A (zh) * | 2015-03-16 | 2015-05-27 | 成都优聚软件有限责任公司 | 一种塔防游戏中游戏对象的移动路径设置方法和系统 |
CN107357563B (zh) | 2017-05-25 | 2018-11-09 | 腾讯科技(深圳)有限公司 | 对象移动方法和装置以及存储介质、电子装置 |
CN107198883B (zh) * | 2017-05-26 | 2020-12-08 | 网易(杭州)网络有限公司 | 用于虚拟游戏中游戏对象的寻路方法及装置 |
WO2018223343A1 (zh) * | 2017-06-08 | 2018-12-13 | 深圳市乃斯网络科技有限公司 | 游戏中定位路径规划方法及系统 |
CN108268971B (zh) * | 2017-12-06 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 路径的搜索方法、装置、处理器和电子装置 |
CN109224446B (zh) * | 2018-07-17 | 2022-05-06 | 派视觉虚拟现实(深圳)软件技术有限公司 | 一种游戏中的动物运动方法、装置及设备 |
CN109529341A (zh) * | 2018-10-23 | 2019-03-29 | 深圳豪客互联网有限公司 | 一种路径规划方法、装置及计算机可读存储介质 |
CN109432777B (zh) * | 2018-10-26 | 2021-11-12 | 网易(杭州)网络有限公司 | 路径生成方法及装置、电子设备、存储介质 |
CN111221598B (zh) * | 2018-11-23 | 2023-09-15 | 北京金山云网络技术有限公司 | 动态显示图像的方法、装置和终端设备 |
JP2020168133A (ja) * | 2019-04-02 | 2020-10-15 | シャープ株式会社 | ゲーム装置、ゲーム制御方法、及びゲームプログラム |
JP7525988B2 (ja) * | 2019-09-03 | 2024-07-31 | 株式会社スクウェア・エニックス | ビデオゲーム処理プログラム、及びビデオゲーム処理システム |
CN111375205B (zh) * | 2020-03-06 | 2023-09-26 | 网易(杭州)网络有限公司 | 游戏中寻路路径的处理方法、装置、电子设备及存储介质 |
CN111389007B (zh) * | 2020-03-13 | 2022-05-31 | 腾讯科技(深圳)有限公司 | 一种游戏控制方法、装置、计算设备及存储介质 |
CN111773717A (zh) * | 2020-06-30 | 2020-10-16 | 完美世界(北京)软件科技发展有限公司 | 对象控制方法和装置、存储介质和电子装置 |
CN113730915B (zh) * | 2021-09-16 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 目标路径的确定方法、装置和存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1181565A (zh) * | 1996-05-16 | 1998-05-13 | 松下电器产业株式会社 | 道路地图信息的读出装置及记录媒体与传送方法 |
CN1975747A (zh) * | 2006-10-12 | 2007-06-06 | 中山大学 | 一种rpg游戏场景路径的自动生成方法及装置 |
CN1990074A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种网络游戏中的物体运动控制方法 |
CN101923602A (zh) * | 2010-06-07 | 2010-12-22 | 上海那里网络科技有限公司 | 区分并标记虚拟场景中不同地型的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100346854C (zh) * | 2003-08-22 | 2007-11-07 | 英业达股份有限公司 | 游戏对象的移动方法 |
GB2408694A (en) * | 2003-12-02 | 2005-06-08 | Peter Harry Seager | Educational board game based on geography |
CN1932829A (zh) * | 2006-10-19 | 2007-03-21 | 北京金山数字娱乐科技有限公司 | 一种在网络游戏中获取两点间路径的系统与方法 |
CN101241507B (zh) * | 2008-01-17 | 2011-09-14 | 腾讯科技(深圳)有限公司 | 一种地图寻路方法及系统 |
CN101635011B (zh) * | 2009-08-14 | 2012-05-23 | 腾讯科技(深圳)有限公司 | 一种角色寻路方法及装置 |
US20110101610A1 (en) * | 2009-10-30 | 2011-05-05 | Salih Murat Mayalidag | Transportation Game for Simulating Movement About a City or Other Area |
-
2013
- 2013-08-09 CN CN201310346475.1A patent/CN103714234B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1181565A (zh) * | 1996-05-16 | 1998-05-13 | 松下电器产业株式会社 | 道路地图信息的读出装置及记录媒体与传送方法 |
CN1990074A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种网络游戏中的物体运动控制方法 |
CN1975747A (zh) * | 2006-10-12 | 2007-06-06 | 中山大学 | 一种rpg游戏场景路径的自动生成方法及装置 |
CN101923602A (zh) * | 2010-06-07 | 2010-12-22 | 上海那里网络科技有限公司 | 区分并标记虚拟场景中不同地型的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103714234A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714234B (zh) | 一种游戏中确定对象移动路径的方法和设备 | |
Mirowski et al. | The streetlearn environment and dataset | |
CN111714892B (zh) | 游戏寻路方法及装置、存储介质、计算机设备 | |
Galin et al. | Authoring hierarchical road networks | |
CN110523081A (zh) | 导航寻路路径的规划方法及装置 | |
CN106110656A (zh) | 在游戏场景计算路线的方法和装置 | |
Antikainen | Comparison of different strategies for determining raster‐based least‐cost paths with a minimum amount of distortion | |
CN107121146B (zh) | 基于路链深度的最优路径规划方法 | |
CN106075906A (zh) | 一种模拟对象的寻路方法、场景的搭建方法和对应的装置 | |
CN110442659B (zh) | 一种区域划分方法和装置 | |
JP6850325B2 (ja) | 確率プロットに基づく障害物分布シミュレーション方法、装置、端末、記憶媒体、及びプログラム | |
CN117073706A (zh) | 路径规划方法、装置、电子设备、存储介质及程序产品 | |
US20230024680A1 (en) | Method of determining regional land usage property, electronic device, and storage medium | |
CN107003834A (zh) | 行人检测设备和方法 | |
Sturtevant et al. | Pathfinding and abstraction with dynamic terrain costs | |
CN109859505A (zh) | 高速站点的预警处理方法、装置、服务器和介质 | |
CN109032600A (zh) | 应用界面更新方法、装置、存储介质及电子设备 | |
CN111773717A (zh) | 对象控制方法和装置、存储介质和电子装置 | |
CN109459051B (zh) | 基于路线规划的语音伴随导游方法及设备 | |
CN117195691A (zh) | 电缆载流不平衡度的确定方法、装置和计算机设备 | |
CN110530391A (zh) | 一种基于分层路网的路径规划方法及装置 | |
Yao et al. | Development of augmented reality indoor navigation system based on enhanced A* algorithm | |
Zafar et al. | Analysis of multiple shortest path finding algorithm in novel gaming scenario | |
CN104346439B (zh) | 圈层体系构建方法及装置 | |
CN115414671A (zh) | 地图生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |