TWI664836B - 控制模擬對象尋路的方法、裝置及伺服器 - Google Patents

控制模擬對象尋路的方法、裝置及伺服器 Download PDF

Info

Publication number
TWI664836B
TWI664836B TW107101326A TW107101326A TWI664836B TW I664836 B TWI664836 B TW I664836B TW 107101326 A TW107101326 A TW 107101326A TW 107101326 A TW107101326 A TW 107101326A TW I664836 B TWI664836 B TW I664836B
Authority
TW
Taiwan
Prior art keywords
path
pathfinding
target
simulation object
module
Prior art date
Application number
TW107101326A
Other languages
English (en)
Other versions
TW201826755A (zh
Inventor
王鵬程
趙永偉
張振興
方仲康
仇斌
唐斌
豆寧軍
劉毅
Original Assignee
大陸商騰訊科技(深圳)有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from CN201710026166.4A external-priority patent/CN106790224B/zh
Priority claimed from CN201710060211.8A external-priority patent/CN106814966B/zh
Priority claimed from CN201710184204.9A external-priority patent/CN106964156B/zh
Priority claimed from CN201710288007.1A external-priority patent/CN107185242B/zh
Application filed by 大陸商騰訊科技(深圳)有限公司 filed Critical 大陸商騰訊科技(深圳)有限公司
Publication of TW201826755A publication Critical patent/TW201826755A/zh
Application granted granted Critical
Publication of TWI664836B publication Critical patent/TWI664836B/zh

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本發明實施例提供一種控制模擬對象尋路的方法包括:當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;根據所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;若存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動。本發明只需維護預置路徑訊息集合即可,而路徑訊息本身就包括多個路徑點,由此减少了資料維護成本,且不易出錯。

Description

控制模擬對象尋路的方法、裝置及伺服器
本發明係關於網際網路技術領域,特別有關一種控制模擬對象尋路的方法、裝置及伺服器。
隨著網際網路技術的不斷發展,體驗大型多人線上角色扮演遊戲(英文全稱:Massive Multiplayer Online Role-Playing Game,英文縮寫:MMORPG)漸漸成為人們熱衷的娛樂項目。在MMORPG中,為了增加趣味性,往往會在遊戲中增加非玩家控制的活動實體(英文全稱:Non-Player Controlled Character,英文縮寫:NPC),模擬玩家的行為對遊戲中的玩家進行攻擊、追擊或者執行遊戲內的邏輯行為。
現有的NPC尋路主要包括三種方式:
第一種,基於預設NPC路徑的尋路機制,即所有NPC的行走路徑都是被預先設計好的,為每個NPC設計行走的路徑點,所有同類的NPC按照預先規劃好的綫路進行行走。然而這種NPC的行為透過配置被固化了,由於NPC對需要攻擊的玩家有追擊狀態,且玩家的行為不可預測,所以通常NPC只能閃現或者無視地形直接返回,這顯然會影響MMORPG的互動性以及合理性。
第二種,基於預設路徑點的尋路機制,路徑點之間兩兩直線可達,在地圖上NPC可能透過的點附近預先配置一些路 徑點,當NPC偏離預設路徑時,先直線移動到最近的路徑點處,然後再從當前路徑點移動到下一個路徑點。然而每個地圖都要維護預設路徑點訊息,使得維護成本高,而且容易出錯。
第三種,基於A*的尋路機制,可以智能地繞開地圖中所有障礙物,從起始點開始,對路徑上每個已探測點計算該點的開銷和到達終點的估計開銷,並從所有已探測點中選擇最優路徑作為下一個路徑點,如此循環直至到達最優路徑點。然而A*算法的搜索開銷很大,佔用伺服器較多計算資源。
在交互式應用的應用界面中,一般將應用界面劃分為多個格子。如果玩家走到某個格子,則標記此格子被佔據,並實時更新玩家所在的格子,那麽其它玩家便無法透過被玩家佔據的該格子。
這種機制中,玩家尋路時,每次碰到路綫上有阻擋格子時都需要重新尋路,需要頻繁的檢查被阻擋的格子,這樣會頻繁的觸發尋路算法,效率較低。特別是應用界面有很多玩家在尋路時,會導致尋路被頻繁打斷和尋路失敗。
A*搜尋算法俗稱A星算法,這是一種在圖形平面上從多個節點的路徑中求出最低通過成本的算法。常用於遊戲中的玩家角色(英文全稱:Player Character,縮寫:PC)的移動計算,或線上遊戲的機器人(robot)的移動計算上。
習知技術中存在導航網格尋路技術,是將遊戲地圖中的行走區域劃分成複數導航網格,然後使用A星算法實現尋路。該A星算法將尋路區域分成多個相連的多邊形網格(例如三角形),每個多邊形網格是尋路的節點。從起點到目標點的導航網格尋路,就是計算從起點所在的網格,到目標點所在的網格,中間需要經過哪些網格路徑。想要得到這些網格路徑列表,習知技術 中一般採用A星算法計算出需要經過的導航網格路徑列表,得出需要經過的導航網格路徑列表後,再計算通行的路徑點列表,將路徑點連綫,即是最終確定出的尋路路徑。
然而,在習知技術中每次進行尋路都會應用A星算法,由於A星算法比較耗時,導致計算尋路路徑的過程比較耗時。
在角色互動類應用程式中,應用程式中通常會包括多個在地圖中可以移動的單位。比如,遊戲地圖中可以包括多個可以移動的士兵等等。
相關方案中,為了使得各個單位能够到達指定的位置,終端會對每個單位分別進行自動尋路,並控制各個單位沿著自動尋路得到的路徑移動。
在單位的數量較多時,上述方案中終端的尋路效率較低。
本發明實施例提供了一種控制模擬對象尋路的方法及伺服器,只需維護預置路徑訊息集合即可,而路徑訊息本身就包括多個路徑點,由此减少了資料維護成本,且不易出錯。與此同時,伺服器無需採用複雜的路徑算法,而是從預置路徑訊息集合中選擇最匹配的第一尋路路徑,從而减小伺服器的計算資源開銷。
有鑒於此,本發明第一方面提供一種控制模擬對象尋路的方法,包括:當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;根據所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑; 若存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動。
本發明第二方面提供伺服器,包括:第一獲取模組,用於當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;第一檢測模組,用於根據所述第一獲取模組獲取的所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;控制模組,用於若所述第一檢測模組檢測到存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動。
從以上技術方案可以看出,本發明實施例具有以下優點:本發明實施例中,提供了一種控制模擬對象尋路的方法,具體為當伺服器接收到第一模擬對象觸發的交互指令時,可以獲取第一模擬對象的移動路徑,然後伺服器根據第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與移動路徑匹配的尋路路徑,若存在,則控制第二模擬對象按照尋路路徑向所述第一模擬對象移動。透過上述方式,第二模擬對象的路徑可以與第一模擬對象的移動路徑達到同步,從而提升方案是合理性,此外,伺服器無需維護交互式應用地圖中的所有路徑點訊息,只需維護預置路徑訊息集合即可,而路徑訊息本身就包括多個路徑點,由此减少了資料維護成本,且不易出錯。與此同時,伺服器無需採用複雜的路徑算法,而是從預置路徑訊息集合中選擇最匹配的第一尋路路徑,從而减小伺服器的計算資源開銷。
本發明提供了一種控制對象的方法及裝置,能够解 决習知技術中終端設備控制對象尋路的效率較低的問題。
第一方面提供一種控制對象的方法,該方法包括:接收用戶針對第一模擬對象的操作指令;根據所述操作指令控制第一模擬對象向第二模擬對象所在的位置移動,所述第二模擬對象具有一個控制範圍,所述第二模擬對象的控制範圍包括至少一個控制區域,每個控制區域包括多個子控制區域;當所述第一模擬對象在所述第二模擬對象的控制範圍時,按照預設的選擇規則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中的一個子控制區域。
本發明第二方面提供一種控制對象的裝置,具有實現對應於上述第一方面提供的控制對象的方法的功能。所述功能可以透過硬體實現,也可以透過硬體執行相應的軟體實現。硬體或軟體包括一個或多個與上述功能相對應的模組,所述模組可以是軟體和/或硬體。所述裝置包括:收發模組,用於接收用戶針對第一模擬對象的操作指令;控制模組,用於根據所述收發模組接收到的所述操作指令控制所述第一模擬對象向第二模擬對象所在的位置移動,所述第二模擬對象具有一個控制範圍,所述第二模擬對象的控制範圍包括至少一個控制區域,每個控制區域包括多個子控制區域;當所述第一模擬對象在所述第二模擬對象的控制範圍時,按照預設的選擇規則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中的一個子控制區域。
相較於習知技術,本發明提供的方案中,透過對應用界面上的對象設置控制範圍,控制範圍包括至少一個控制區 域,每個控制區域包括多個子控制區域。使得在控制第一模擬對象尋路到第二模擬對象的控制範圍時,按照預設的選擇規則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中的一個子控制區域。透過這種子控制區域的劃分機制,使得尋路第二模擬對象的各模擬對象能够有序的選擇到第二模擬對象的控制範圍內的某個子控制區域,而不會與其他對尋路第二模擬對象的對象造成競爭,也無需另外啟動尋路,能够有效的提高尋路的效率和準確率,一定程度上也减少頻繁啟動尋路算法帶來的功耗。
本發明實施例提供了一種尋路方法以及裝置,用於根據模擬對象的起始點與目標點之間所處的尋路路徑,採用對應的尋路策略,在包含多種尋路路徑的遊戲場景地圖的情况下,可以有效地减少在尋路過程中使用A星算法,從而减少計算尋路路徑的時間。
有鑒於此,本發明實施例第一方面提供了一種尋路方法,該尋路方法包括:確定模擬對象的起始點以及目標點;根據所述起始點以及目標點確定所述模擬對象在遊戲場景地圖上的尋路路徑;根據所述尋路路徑的類型對所述模擬對象採取與所述類型對應的尋路策略,其中,不同類型的尋路路徑配置有不同的尋路策略。
本發明實施例第二方面提供了一種尋路裝置,包括:第一確定模組,用於確定模擬對象的起始點以及目標點;第二確定模組,用於根據所述第一確定模組確定的所述起始點以及目標點確定所述模擬對象在遊戲場景地圖上的尋 路路徑;尋路模組,用於根據所述第二確定模組確定的所述尋路路徑的類型對所述模擬對象採取與所述類型對應的尋路策略,其中,不同類型的尋路路徑配置有不同的尋路策略。
從以上技術方案可以看出,本發明實施例提出了一種尋路方法,確定模擬對象的起始點以及目標點,根據所述起始點以及目標點確定所述模擬對象在遊戲場景地圖上的尋路路徑,根據所述尋路路徑的類型對所述模擬對象採取與所述類型對應的尋路策略,其中,不同類型的尋路路徑配置有不同的尋路策略。即在本發明實施例中,不是採用的一刀切的方式,即不是每次尋路,都會應用A星算法這一尋路策略進行尋路,而是根據模擬對象的起始點與目標點之間所處的尋路路徑,在採用尋路路徑的類型對應的尋路策略,在包含多種尋路路徑的地圖的情况下,可以有效地减少在尋路過程中使用A星算法,從而减少計算尋路路徑的時間。
為了解决習知技術中存在的問題,本發明實施例提供了一種多單位尋路方法及裝置。技術方案如下:根據本發明實施例的第一方面,提供一種多單位尋路方法,該方法包括:對單位群組進行自動尋路,生成沿著地圖中的目標路徑移動的尋路嚮導;所述單位群組中包括n個單位,n為大於1的整數,所述單位是指在界面的地圖中可以移動的模擬對象,所述尋路嚮導是指用於引導至少一個單位按照計算的尋路路徑移動的對象,所述尋路嚮導用於確定地圖中從起始點至結束點之間的移動路徑;控制所述單位群組中的單位跟隨所述尋路嚮導移 動;當所述單位群組中的單位與所述地圖中的障礙物之間的距離小於預設距離時,生成避讓嚮導,控制所述單位群組中的單位跟隨所述避讓嚮導繞過所述障礙物移動。
根據本發明實施例的第二方面,提供一種多單位尋路裝置,該裝置包括:生成模組,用於對單位群組進行自動尋路,生成沿著地圖中的目標路徑移動的尋路嚮導;所述單位群組中包括n個單位,n為大於1的整數,所述單位是指在界面的地圖中可以移動的模擬對象,所述尋路嚮導是指用於引導至少一個單位按照計算的尋路路徑移動的對象,所述尋路嚮導用於確定地圖中從起始點至結束點之間的移動路徑;控制模組,用於控制所述單位群組中的單位跟隨所述尋路嚮導移動;移動模組,用於在所述單位群組中的單位與所述地圖中的障礙物之間的距離小於預設距離時,生成避讓嚮導,控制所述單位群組中的單位跟隨所述避讓嚮導繞過所述障礙物移動。
本發明實施例提供的技術方案帶來的有益效果是:透過將n個單位作為一個單位群組,生成該單位群組的尋路嚮導,控制單位群組中的單位跟隨尋路嚮導移動,並在單位群組中的單位與地圖中的障礙物之間的距離小於預設距離時,生成避讓嚮導,控制單位群組中的單位跟隨避讓嚮導繞過障礙物移動;也即透過將多個單位作為一個整體進行自動尋路,進而只有在與障礙物之間的距離較小時生成避讓嚮導,解决了相關技術中分別對每個單位進行尋路時,尋路效率較低的問題;達到了可以提高尋路效率的效果。
40‧‧‧伺服器
80‧‧‧控制對象的裝置
101‧‧‧第一確定模組
102‧‧‧第二確定模組
103‧‧‧尋路模組
200‧‧‧尋路裝置
201‧‧‧處理器
202‧‧‧儲存器
203‧‧‧通信連接埠
204‧‧‧匯流排
205‧‧‧程式碼
206‧‧‧資料
207‧‧‧電源
401‧‧‧第一獲取模組
402‧‧‧第一檢測模組
403‧‧‧控制模組
404‧‧‧確定模組
4041‧‧‧第一獲取單元
4042‧‧‧第一確定單元
4043‧‧‧第二獲取單元
4044‧‧‧第二確定單元
405A‧‧‧第二獲取模組
405B‧‧‧第一判斷模組
405C‧‧‧第一加入模組
405D‧‧‧第一更新模組
406A‧‧‧第三獲取模組
406B‧‧‧第二判斷模組
406C‧‧‧第二加入模組
406D‧‧‧第二更新模組
408A‧‧‧儲存模組
408B‧‧‧第二檢測模組
409‧‧‧構建模組
500‧‧‧伺服器
522‧‧‧中央處理器
526‧‧‧電源
530‧‧‧儲存介質
532‧‧‧儲存器
541‧‧‧操作系統
542‧‧‧應用程式
544‧‧‧資料
550‧‧‧有線或無線網路連接埠
558‧‧‧輸入輸出連接埠
801‧‧‧收發模組
802‧‧‧控制執行緒模組
910‧‧‧RF電路
920‧‧‧儲存器
930‧‧‧輸入單元
931‧‧‧觸控面板
932‧‧‧其他輸入設備
940‧‧‧顯示單元
941‧‧‧顯示面板
950‧‧‧傳感器
960‧‧‧音頻電路
961‧‧‧揚聲器
962‧‧‧傳聲器
970‧‧‧WiFi模組
980‧‧‧處理器
990‧‧‧電源
1001‧‧‧射頻電路
1002‧‧‧儲存器
1003‧‧‧輸入單元
1004‧‧‧顯示單元
1005‧‧‧傳感器
1006‧‧‧音頻電路
1007‧‧‧WiFi模組
1008‧‧‧處理器
1009‧‧‧電源
9100‧‧‧生成模組
9200‧‧‧控制模組
9300‧‧‧移動模組
S101~S103‧‧‧步驟
S201~S203‧‧‧步驟
S301~S311‧‧‧步驟
S111~S113‧‧‧步驟
S121~S123‧‧‧步驟
S131~S134‧‧‧步驟
第1圖為本發明實施例中控制模擬對象尋路的架構圖;第2圖為本發明實施例中控制模擬對象尋路的方法一個實施例示意圖;第3圖為本發明實施例中基於路徑池的尋路流程示意圖;第4圖為本發明應用場景中的NPC配置示意圖;第5圖為本發明應用場景中基於路徑池的返回尋路流程示意圖;第6圖為本發明實施例中伺服器一個實施例示意圖;第7圖為本發明實施例中伺服器另一個實施例示意圖;第8圖為本發明實施例中伺服器另一個實施例示意圖;第9圖為本發明實施例中伺服器另一個實施例示意圖;第10圖為本發明實施例中伺服器另一個實施例示意圖;第11圖為本發明實施例中伺服器另一個實施例示意圖;第12圖為本發明實施例中伺服器另一個實施例示意圖;第13圖為本發明實施例中伺服器另一個實施例示意圖;第14圖為本發明實施例中伺服器一個結構示意圖; 第15圖為本實施例中輪盤的一種結構示意圖;第16圖為本實施例中控制對象的一種流程示意圖;第17圖為現有機制中兩個對象產生競爭的一種示意圖;第18圖為本實施例中透過輪盤避免競爭的一種示意圖;第19圖為本實施例中兩個對象產生競爭的另一種示意圖;第20圖為本實施例中透過輪盤避免競爭的另一種示意圖;第21圖為本實施例中透過輪盤選擇子控制區域後的各虛擬角色散開的示意圖;第22圖為本實施例中控制對象的裝置的一種結構示意圖;第23圖為本實施例中控制對象的手機的一種結構示意圖;第24圖為本發明實施例一種尋路方法中一個遊戲場景地圖示意圖;第25圖為本發明實施例一種尋路方法中另一遊戲場景地圖示意圖;第26圖為本發明實施例一種尋路方法中管道尋路路徑一個索引方式示意圖;第27圖為本發明實施例一種尋路方法另一遊戲場景地圖示意圖;第28圖為本發明實施例一種尋路方法一個實施例流程示意圖; 第29圖為本發明實施例一種尋路方法另一實施例流程示意圖;第30圖為本發明實施例一種尋路裝置另一實施例結構示意圖;第31圖為本發明實施例一種尋路裝置另一實施例結構示意圖;第32圖是本發明一個實施例提供的多單位尋路方法的流程圖;第33圖是本發明一個實施例提供的多單位尋路方法中確定的尋路嚮導的位置的示意圖;第34圖是本發明一個實施例提供的多單位尋路方法中與障礙物碰撞之後的移動方向的示意圖;第35圖是本發明一個實施例提供的多單位尋路方法中與障礙物碰撞後的各種可能的場景的示意圖;第36圖是本發明一個實施例提供的多單位尋路方法中與障礙物碰撞後的各種可能的場景的再一種示意圖;第37圖是本發明一個實施例提供的多單位尋路方法中確定的分散嚮導的位置的示意圖;第38圖是本發明一個實施例提供的多單位尋路方法中分散嚮導移動的一種可能的示意圖;第39圖是本發明一個實施例提供的多單位尋路方法中j個單位的各個單位的移動軌跡的示意圖;第40圖是本發明一個實施例提供的多單位尋路裝置的示意圖;第41圖是本發明一個實施例提供的終端的示意圖。
本發明實施例提供了一種控制模擬對象尋路的方法及伺服器,只需維護預置路徑訊息集合即可,而路徑訊息本身就包括多個路徑點,由此减少了資料維護成本,且不易出錯。與此同時,伺服器無需採用複雜的路徑算法,而是從預置路徑訊息集合中選擇最匹配的第一尋路路徑,從而减小伺服器的計算資源開銷。
本發明的說明書和權利要求書及上述圖式中的術語“第一”、“第二”、“第三”、“第四”等(如果存在)是用於區別類似的對象,而不必用於描述特定的順序或先後次序。應該理解這樣使用的資料在適當情况下可以互換,以便這裏描述的本發明的實施例例如能够以除了在這裏圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在於覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限於清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對於這些過程、方法、產品或設備固有的其它步驟或單元。
應理解,本發明應用於控制模擬對象尋路系統,請參閱第1圖,第1圖為本發明實施例中控制模擬對象尋路的架構圖,如第1圖所示,在控制模擬對象尋路系統中包一台伺服器以及多部終端,其中,圖中的兩個終端僅為一個示意,並不應理解為對本發明的限定,圖中的伺服器主要為交互式應用伺服器,該交互式應用具體可以是MMORPG。對於不同的MMORPG而言,其角色以及MMORPG內資料都是相互獨立的,一般情况下也就為每個MMORPG單獨配備一台資料庫伺服器,以减輕資料庫的壓力。所以,整體的伺服器結構應該是一個大區有一台帳號交互式應用伺服器,所有的登錄服都連接到這裏。而每個MMORPG都有自己的 資料庫伺服器,只允許與本MMORPG內的伺服器連接。
MMORPG中分為客戶端和伺服器兩部分,客戶端安裝於終端。玩家從客戶端透過網際網路連接,登陸伺服器端後才能進行遊戲。玩家的資料保存在伺服器端。遊戲的過程,是玩家扮演的角色和其他玩家控制的角色在網路虛擬空間中實時互動。而NPC則往往是在遊戲中提供特殊服務的人物,如銷售虛擬物品,提供任務等。遊戲開發商或者代理商提供伺服器供玩家遊戲,負責管理遊戲中的虛擬世界,並不斷為遊戲做出更新,以便留住玩家以及吸引其他人來玩這款遊戲。
NPC分為劇情NPC和功能性NPC,有時這兩種類型的NPC也會合二為一,即一個NPC同時具備這兩種NPC的特徵。劇情NPC,顧名思義是遊戲劇情故事中必不可少的組成部分,用於推動整個劇情情節的發展。功能性NPC包括服務型NPC以及可戰鬥NPC,服務型NPC為遊戲中的玩家角色提供各種服務。可戰鬥NPC具體還可以分為玩家對戰類NPC,擊殺這類NPC後可能獲得榮譽的NPC,還有一種為玩家對戰環境類NPC,擊殺這類NPC後可能獲得經驗值的NPC。本發明主要涉及的NPC為可戰鬥NPC。
下面將從伺服器端的角度,對本發明中控制模擬對象尋路的方法進行介紹,請參閱第2圖,本發明實施例中控制模擬對象尋路的方法一個實施例包括:
S101、當接收到第一模擬對象觸發的交互指令時,獲取第一模擬對象的移動路徑;本實施例中,在MMORPG進行時,第一模擬對象可以對第二模擬對象進行交互操作,並生成相應的交互指令,伺服器收到該交互指令後,即需要獲取第一模擬對象的移動路徑。
其中,第一模擬對象通常是指玩家,而第二模擬對 象則是NPC,在MMORPG中,玩家與NPC之間可以進行交互操作。交互操作包括但不僅限於攻擊操作、追逐操作、買賣操作和詢問操作,根據不同的操作內容生成相應的交互操作指令。第一模擬對象的移動路徑即為玩家在與NPC進行交互後的移動路徑。
S102、根據第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與移動路徑匹配的第一尋路路徑;本實施例中,伺服器在獲取到玩家的移動路徑後,若第二模擬對象與第一模擬對象之間存在障礙物,則需要從預置路徑訊息集合中檢測是否存在於該移動路徑匹配的第一尋路路徑。
如果從第二模擬對象到第一模擬對象之間不存在障礙物,即直綫可達時,就無需從預置路徑訊息集合中查找相應的第一尋路路徑,而是直接向第一模擬對象移動。
其中,預置路徑訊息集合也稱為“路徑池”,包含了至少一條已經被儲存的尋路路徑,且被儲存的尋路路徑是根據多名玩家的歷史資料生成的,例如,有95%以上的玩家在碰到某個NPC後會選擇一條向上的路徑逃脫,於是這條路徑就可以認為是高概率尋路路徑,即NPC會沿著這條尋路路徑追趕玩家一段時間後再返回。
需要說明的是,在對玩家的歷史資料進行分析後,可將大於60%的移動路徑作為高概率路徑,在實際應用中,還能够按照需要設定高概率路徑的概率閾值值,此處不作限定。
S103、若存在第一尋路路徑,則控制第二模擬對象按照第一尋路路徑向第一模擬對象移動。
本實施例中,如果伺服器在預置路徑訊息集合中找到的與玩家移動路徑匹配的第一尋路路徑,則可以控制NPC按照 第一尋路路徑向玩家移動。
本發明實施例中,提供了一種控制模擬對象尋路的方法,具體為當伺服器接收到第一模擬對象觸發的交互指令時,可以獲取第一模擬對象的移動路徑,然後伺服器根據第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與移動路徑匹配的尋路路徑,若存在,則控制第二模擬對象按照尋路路徑向所述第一模擬對象移動。透過上述方式,第二模擬對象的路徑可以與第一模擬對象的移動路徑達到同步,從而提升方案是合理性,此外,伺服器無需維護第二模擬對象的所有路徑點訊息,只需維護預置路徑訊息集合即可,而路徑訊息本身就包括多個路徑點,由此减少了資料維護成本,且不易出錯。與此同時,伺服器無需採用複雜的路徑算法,而是從預置路徑訊息集合中選擇最匹配的第一尋路路徑,從而减小伺服器的計算資源開銷。
可選地,在上述第2圖對應的實施例的基礎上,本發明實施例提供的控制模擬對象尋路方法第一個可選實施例中,檢測預置路徑訊息集合中是否存在與移動路徑匹配的第一尋路路徑之後,還可以包括:若不存在第一尋路路徑,則確定與移動路徑匹配的第二尋路路徑。
本實施例中,如果伺服器沒有從預置路徑訊息集合中檢測到與玩家移動路徑相匹配的第一尋路路徑,則開始採用其他搜索算法來獲取與玩家移動路徑匹配的第二尋路路徑。
具體地,為了得到更優的第二尋路路徑,通常情况下,可以在MMORPG的地圖範圍內執行A*搜索算法。A*搜索算法是一種靜態路網中求解最短路徑最有效的直接搜索方法,也是解决許多搜索問題的有效算法。算法中的距離估算值與實際值越接 近,最終搜索速度越快。
A*搜索算法的公式表示為f(n)=g(n)+h(n)。
其中,f(n)表示從初始狀態經由狀態n到目標狀態的代價估計,g(n)表示在狀態空間中從初始狀態到狀態n的實際代價,h(n)表示從狀態n到目標狀態的最佳路徑的估計代價。對於路徑搜索問題,狀態就是地圖範圍中的節點,代價就是距離。
為了找到最短路徑,關鍵在於估價函數f(n)的選取,或者是h(n)的選取,如果以d(n)表達狀態n到目標狀態的距離,那麽h(n)的選取有如下三種情况:
第一種,如果h(n)d(n),這種情况下,搜索的點數多,搜索範圍大,效率低,但能得到最優解。
第二種,如果h(n)=d(n),即距離估計h(n)等於最短距離,那麽搜索將嚴格沿著最短路徑進行,此時的搜索效率是最高的。
第三種,如果h(n)>d(n),則搜索的點數少,搜索範圍小,效率高,但不能保證得到最優解。
需要說明的是,在實際應用中,除了能够採用A*搜索算法計算得到第二尋路路徑,還可以採用如局部擇優搜索法、優先搜索法、預設路徑法或者預設路徑節點法等方式計算第二尋路路徑,此處不作限定。
其次,本發明實施例中,伺服器在檢測到預置路徑訊息集合中不存在與移動路徑匹配的第一尋路路徑時,則開始執行其他的搜索算法,以計算得到相應的第二尋路路徑。透過上述方式,可以提升MMORPG的操作可行性,也就是說,即便預置路徑訊息集合中沒有相應的尋路路徑,仍舊可以保證NPC在合理的區域內對玩家進行追踪,從而提升方案的可操作性。
可選地,在上述第2圖對應的第一個實施例的基礎上,本發明實施例提供的控制模擬對象尋路方法第二個可選實施例中,確定與移動路徑匹配的第二尋路路徑之後,還可以包括:獲取第二尋路路徑的開銷資料,開銷資料用於表示計算資源當前的使用量,所述計算資源是指伺服器中用於計算尋路路徑的資源;判斷第二尋路路徑的開銷資料是否大於目標開銷閾值;若第二尋路路徑的開銷資料大於目標開銷閾值,則將第二尋路路徑加入至預置路徑訊息集合中;若第二尋路路徑的開銷資料不大於目標開銷閾值,則根據第二尋路路徑的開銷資料更新伺服器本地儲存的歷史開銷資料,歷史開銷資料用於更新目標開銷閾值。
本實施例中,將介紹一種構建預置路徑訊息集合的方式,即說明如何構建路徑池。
具體地,伺服器在採用搜索算法計算得到第二尋路路徑之後,首先需要對該條第二尋路路徑進行開銷資料的判斷,開銷資料包括但不僅限於遍歷次數和單次尋路時間,在本方案中,區域間尋路的開銷資料計算公式還可以為,區域間尋路的開銷資料=單次尋路開銷×尋路調用次數。
得到開銷資料後,判斷該開銷資料是否大於目標開銷閾值,若是,則說明這條第二尋路路徑開銷資料較大,如果多次重複計算這條路徑則會導致伺服器計算資源的浪費,於是將該第二尋路路徑加入到預置路徑訊息集合中,也就是之後不再進行重複計算即可調用此路徑。如果第二尋路路徑的開銷資料不大於目標開銷閾值,則還可以在伺服器後台更新歷史開銷資料。
假設歷史開銷資料的平均值為90,且設定目標開銷閾值比歷史開銷資料的平均值高出10,那麽目標開銷閾值可以為100。後續得到第二尋路路徑的開銷資料為80,將其與歷史開銷資料進行求平均計算後得到新的均值X,採用A尋路路徑的開銷資料為50,將其與歷史開銷資料進行求平均計算後得到新的均值Y,採用B尋路路徑的開銷資料為20,將其與歷史開銷資料進行求平均計算後得到新的均值Z,於是下一輪的目標開銷閾值則可以更新為80X+50Y+20Z。
再次,本發明實施例中,介紹了一種根據路徑開銷資料來判斷是否可以加入預置路徑訊息集合的方法,即當路徑開銷資料較大時,將這條路徑儲存至預置路徑訊息集合中。透過上述方式,可以使得預置路徑訊息集合中儲存相對而言開銷資料較大的尋路路徑,以此在採用這類尋路路徑時無需伺服器再次執行路徑搜索算法,而是直接提取相應的路徑即可,從而緩解了伺服器的計算壓力,避免了由於開銷資料較大而帶來過高的計算資源耗費的情况,提升了方案的實用性。
可選地,在上述第2圖對應的第一個實施例的基礎上,本發明實施例提供的控制模擬對象尋路方法第三個可選實施例中,確定與移動路徑匹配的第二尋路路徑之後,所述方法還包括:獲取第二尋路路徑的熱度資料,第二尋路路徑的熱度資料用於表示第二尋路路徑的使用頻率,其他尋路路徑的熱度資料同理,不作贅述;判斷第二尋路路徑的熱度資料是否大於目標熱度閾值;若第二尋路路徑的熱度資料大於目標熱度閾值,則 將第二尋路路徑加入至預置路徑訊息集合中;若第二尋路路徑的熱度資料不大於目標熱度閾值,則根據第二尋路路徑的熱度資料更新歷史熱度資料,歷史熱度資料用於更新目標熱度閾值。
本實施例中,伺服器在採用搜索算法計算得到第二尋路路徑之後,首先需要對該條第二尋路路徑進行熱度資料的判斷,熱度資料包括但不僅限於一段時間內不同玩家選擇這條第二尋路路徑的次數,且第二尋路路徑可以是兩個可達區域之間形成的路徑綫。
具體地,得到熱度資料後,判斷該熱度資料是否大於目標熱度閾值,若是,則說明這條第二尋路路徑的熱度資料較大,如果多次重複計算這條路徑則會導致伺服器計算資源的浪費,於是將該第二尋路路徑加入到預置路徑訊息集合中,也就是之後不再進行重複計算即可調用此路徑。如果第二尋路路徑的熱度資料不大於目標熱度閾值,則還可以在伺服器後台更新目標熱度閾值。
假設目標熱度閾值為80%,第二尋路路徑的熱度資料為1分鐘內10個玩家中有5個玩家也選擇了第二尋路路徑,即50%,於是將第二尋路路徑的熱度資料更新至歷史熱度資料,可以根據歷史熱度資料靈活地更新目標熱度閾值,這樣可以使得目標熱度閾值的確定更為合理化。
為了便於說明,請參閱第3圖,第3圖為本發明實施例中基於路徑池的尋路流程示意圖,如圖所示:步驟S201中,MMORPG的開啟;步驟S202中,首先玩家在MMORPG地圖中的一個區域看到一個可戰鬥NPC,於是玩家向該NPC發動了攻擊,此時觸發 了NPC的尋路流程;步驟S203中,當玩家發現這個NPC並不容易擊倒時,開始往一個方向逃跑,而這個時候,NPC還會追擊該玩家一段時間。伺服器先檢測後台儲存的路徑池中是否包括與玩家逃跑路綫最接近的路徑,如果存在,則跳轉至步驟S207,並且採用該路徑追擊玩家,如果不存在,則進入步驟S204。
步驟S204中,在路徑池中不存在相應的路徑時,伺服器可以採用A*搜索算法,計算地圖範圍內的追擊路徑;步驟S205中,判斷這條計算出來的路徑是否需要加入路徑池中,若是,則進入步驟S206,反之,則進入步驟S207;步驟S206中,將這條路徑加入路徑池後,即可淘汰該路徑,這是因為路徑池已經記錄了該路徑,後續再遇到類似的玩家逃跑路綫時,就直接從路徑池中提取這條追擊路徑即可;步驟S207中,根據路徑池中調用路徑的情况以及將新路徑加入路徑池的情况,實時更新路徑熱度和/或開銷資料;步驟S208中,至此,完成基於路徑池的尋路流程。
再次,本發明實施例中,介紹了一種根據路徑選擇熱度來判斷是否可以加入預置路徑訊息集合的方法,即當路徑選擇熱度較高時,將這條路徑儲存至預置路徑訊息集合中。透過上述方式,可以使得預置路徑訊息集合中儲存相對而言選擇熱度較高的尋路路徑,以此在採用這類尋路路徑時無需伺服器再次執行路徑搜索算法,而是直接提取相應的路徑即可,從而緩解了伺服器的計算壓力,避免了由於開銷資料較大而帶來過高的計算資源耗費的情况,提升了方案的靈活性和實用性。
可選地,在上述第2圖對應的第一個實施例的基礎上,本發明實施例提供的控制模擬對象尋路方法第四個可選實施 例中,確定與移動路徑匹配的第二尋路路徑,可以包括:獲取第一模擬對象當前的第一位置以及第二模擬對象當前的第二位置;根據第一位置與第二位置確定第二模擬對象的第一目標移動位置,第一目標移動位置與第一位置之間的距離小於預置閾值,第二位置與第一目標移動位置構成第二尋路路徑。
本實施例中,將說明如何根據第一模擬對象的移動位置確定第二模擬對象的移動位置。
具體地,首先伺服器獲取第一模擬對象,即玩家的第一位置,假設第一位置為A點,同時伺服器還需要獲取第二模擬對象,即NPC的第二位置,假設第二位置為B點。伺服器確定NPC將要向A點靠近,但是並非與A點重合,在A點周邊還可以存在多個可站立點,這些點均能作為NPC將要達到的第一目標移動位置,即C點。當然,在實際應用中,C點距離A點之間的距離小於預置閾值,也就是不能距離A點太遠,否則就無法實現追擊的效果。伺服器控制NPC從B點移動至C點,直線BC就構成了與玩家移動路徑匹配的第二尋路路徑。
再次,本發明實施例中,介紹了一種伺服器確定第二尋路路徑的具體實現方式,即根據第一模擬對象的移動位置來部署第二模擬對象的移動位置,多個位置最後構成一條較優的第二尋路路徑。透過上述方式,使得第二模擬對象能够實時地根據玩家的移動路徑進行路徑規劃,並且得到的第二尋路路徑更貼近真實情况,使得第二模擬對象可以準確地向玩家靠近,從而提升方案的可行性。
可選地,在上述第2圖對應的第四個實施例的基礎上,本發明實施例提供的控制模擬對象尋路方法第五個可選實施 例中,根據第一位置確定第二模擬對象的目標移動位置之後,還可以包括:當第一模擬對象發生移動時,獲取第一模擬對象的第三位置以及第二模擬對象的第四位置;根據第三位置與第四位置確定第二模擬對象的第二目標移動位置,第二目標移動位置與第三位置之間的距離小於預置閾值,第二位置與第一目標移動位置更新第二尋路路徑。
本實施例中,在第2圖對應的第四個實施例中說明NPC從B點移動至C點的方式,而在實際應用中,NPC追擊玩家的過程是具有連貫性的,也就是說,玩家還會繼續從A點移動至其他位置。
具體地,當伺服器檢測到玩家從A點開始移動時,需要獲取玩家的第三位置,即D點,而此時的NPC可能還在直線BC的某個點上,並未到達C點,於是假設此時的NPC位置點為E點,則伺服器又進一步確定NPC需要從E點向D點靠近。同樣地,E點與D點未必重合,在D點周邊還可以存在多個可站立點,這些點均能作為NPC將要達到的第二目標移動位置,即F點。當然,在實際應用中,F點距離D點之間的距離也小於預置閾值,也就是不能距離D點太遠,否則就無法實現追擊的效果。伺服器控制NPC從E點移動至F點,從B點經過E點到達F點的路徑即構成了與玩家移動路徑匹配的第二尋路路徑。
進一步地,本發明實施例中,如果第一模擬對象繼續移動,則伺服器也將控制第二模擬對象緊隨其後,繼續與第一模擬對象靠近,並且實時地更新第二尋路路徑。透過上述方式,解决在第一模擬對象持續移動的情况下,如何構建第二尋路路徑的問題,從而提升了方案的靈活性和實用性。
可選地,在上述第2圖對應的第四或第五個實施例的基礎上,本發明實施例提供的控制模擬對象尋路方法第六個可選實施例中,還可以包括:分別將第二位置、第一目標移動位置以及第二目標移動位置依次儲存於路徑堆棧;檢測從第二位置到第二目標移動位置之間是否滿足直線移動條件,若是,則從路徑堆棧中清除第一目標移動位置。
本實施例中,上述介紹的實施例中可以得到,每次第二模擬對象移動時都會透過複數個位置點,本方案需要將這些位置點都進行相應的記錄。
具體為,在伺服器的路徑堆棧中會儲存一系列的位置點,但是這些位置點需要滿足直綫可達的條件。假設NPC一共走過了10個位置點,分別按照經過的順序記錄如下表1所示:
然後,並非所有位置點之間都是直線可達的,假設位置點001與位置點003所構成的直線上剛好存在位置點002,於是認為位置點002可以忽略,假設位置點005到位置點006之間具有障礙物,位置點008到位置點010之間直線可達。從而伺服器會根據上述的情况重新建立路徑堆棧,分別按照經過的順序記錄如下表2所示:
更進一步地,本發明實施例中,對應第二模擬對象而言,還可以為其建立一個路徑堆棧,在該路徑堆棧中按照儲存第二模擬對象每次經過的位置點。透過上述方式,能够使得伺服器記憶第二模擬對象所經過的尋路路徑,為後續第二模擬對象按照原路返回提供了有效的解决手段,從而提升方案的實用性,並且採用堆棧的資料結構在實際應用中也具有較好的可行性。
可選地,在上述第2圖對應的第六個實施例的基礎上,本發明實施例提供的控制模擬對象尋路方法第七個可選實施例中,控制第二模擬對象按照第一尋路路徑向第一模擬對象移動之後,還可以包括:若第二模擬對象的移動位置滿足尋路返回條件,則 根據路徑堆棧中的位置點構建第三尋路路徑,第三尋路路徑用於第二模擬對象返回至初始位置。
本實施例中,伺服器可以控制第二模擬對象追逐第一模擬對象,然而,在實際應用中,第二模擬對象不會無止境地追逐第一模擬對象,通常我們會給這段追逐的過程設定一個合理的追逐時間或者追逐距離,超過該追逐時間或者追逐距離後,第二模擬對象將不再繼續追逐第一模擬對象,於是也需要啟動第二模擬對象的返回機制。
具體地,假設第一模擬對象仍為玩家,第二模擬對象為NPC。當NPC距離自身初始位置的距離大於閾值時,或者當NPC追逐玩家的時間超過閾值時,均觸發尋路返回條件,於是從已經建立的路徑堆棧中找尋追逐玩家的過程中所儲存的有效位置點,假設得到的有效位置點按順序排列依次為A、B、D、G、H和I,那麽第三尋路路徑就是依次由I、H、G、D、B和A所構成的,第三尋路路徑也可以稱為尋路返回路徑,用於使得NPC退回到預先給它設定的初始位置。
再進一步地,本發明實施例中,介紹了在第二模擬對象在追逐第一模擬對象一段時間或者一段距離後需要執行的返回機制,該返回機制主要利用堆棧的思路,達到先進後出的效果。透過上述方式,第二模擬對象在返回時無需伺服器再次計算返回路徑,而是直接按照原來尋路路徑返回即可,從而在返回的過程中减少了伺服器的計算量,並節省了伺服器的計算資源。
為便於理解,下面可以以一個具體應用場景對本發明中控制模擬對象尋路過程進行詳細描述,具體為:目前,某公司開發了一款MMORPG,並且可以為這款MMORPG的NPC配置合理的行走路徑,請參閱第4圖,第4圖為 本發明應用場景中的NPC配置示意圖,確定MMORPG中NPC的初始位置,並儲存於伺服器後台。
接下來將介紹如何利用伺服器中的路徑池,控制NPC進行移動,具體請參閱第5圖,第5圖為本發明應用場景中基於路徑池的返回尋路流程示意圖,在預設路徑位置點機制中,預先在地圖上埋下兩兩直綫可達的路徑位置點,事實上,NPC的行為在時間上是具有連貫性的。NPC在追擊過程中,一般情形下走過的相鄰路徑位置點之間都是直線可達的,並且追擊的始末點就是返回模式下尋路的始末點,因此追擊模式下生成的位置點訊息可以作為返回模式下的參考資料。
步驟S301中,MMORPG的開啟;步驟S302中,首先玩家在MMORPG地圖中的一個區域看到一個可戰鬥NPC,於是玩家向該NPC發動了攻擊,此時觸發了NPC的尋路流程;步驟S303中,NPC記錄當前自身的站立點,並且以玩家的站立點為尋路目標點開始執行尋路;步驟S304中,伺服器根據NPC的尋路路徑構建路徑棧,路徑棧即為路徑堆棧,遵循先進後出的原則;步驟S305中,路徑棧中第一個記錄的位置就是NPC初始的站立位置,然後在一段連貫的追擊過程中,路徑棧還會按順序記錄後續的位置點;步驟S306中,判斷新入路徑棧的位置點和已經在路徑棧中的位置點是否兩兩直線可達,如果是,則進入步驟S307,反之,則進入步驟S308;步驟S307中,若是存在一個位置點與新入路徑棧的位置點直綫可達,則執行路徑融合過程,即將這兩個位置點之間 所經過的其他位置點都從路徑棧中去掉;步驟S308中,判斷NPC是否完成對玩家的追擊,若是,則進入步驟S309,反之,則跳轉至步驟S303,也就是再次根據玩家的移動位置確定NPC的追擊路徑;步驟S309中,如果本次NPC完成對玩家的追擊,那麽退出路徑棧的構建構成,利用堆棧中先進後出的原理,沿著追擊過程中形成的追擊路徑構建返回路徑;步驟S310中,判斷路徑棧是否為空,若是,則說明已經利用路徑棧中的位置點完成了NPC的返回,進入步驟S311,若否,則說明還需要繼續利用路徑棧中的位置點構建相應的返回路徑,即再次進入步驟S309;步驟S311中,至此,完成基於路徑池的尋路流程。
下面對本發明中的伺服器進行詳細描述,請參閱第6圖,本發明實施例中的伺服器包括:第一獲取模組401,用於當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;第一檢測模組402,用於根據所述第一獲取模組401獲取的所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;控制模組403,用於若所述第一檢測模組402檢測到存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動。
本實施例中,當接收到第一模擬對象觸發的交互指令時,第一獲取模組401獲取所述第一模擬對象的移動路徑,第一檢測模組402根據所述第一獲取模組401獲取的所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑 匹配的第一尋路路徑,若所述第一檢測模組402檢測到存在所述第一尋路路徑,則控制模組403控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動。
本發明實施例中,提供了一種控制模擬對象尋路的伺服器,具體為當伺服器接收到第一模擬對象觸發的交互指令時,可以獲取第一模擬對象的移動路徑,然後伺服器根據第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與移動路徑匹配的尋路路徑,若存在,則控制第二模擬對象按照尋路路徑向所述第一模擬對象移動。透過上述方式,第二模擬對象的路徑可以與第一模擬對象的移動路徑達到同步,從而提升方案是合理性,此外,伺服器無需維護第二模擬對象的所有路徑點訊息,只需維護預置路徑訊息集合即可,而路徑訊息本身就包括多個路徑點,由此减少了資料維護成本,且不易出錯。與此同時,伺服器無需採用複雜的路徑算法,而是從預置路徑訊息集合中選擇最匹配的第一尋路路徑,從而减小伺服器的計算資源開銷。
可選地,在上述第6圖所對應的實施例的基礎上,請參閱第7圖,本發明實施例提供的伺服器的另一實施例中,所述伺服器40還包括:確定模組404,用於所述第一檢測模組402檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑之後,若不存在所述第一尋路路徑,則確定與所述移動路徑匹配的第二尋路路徑。
其次,本發明實施例中,伺服器在檢測到預置路徑訊息集合中不存在與移動路徑匹配的第一尋路路徑時,則開始執行其他的搜索算法,以計算得到相應的第二尋路路徑。透過上述方式,可以提升MMORPG的操作可行性,也就是說,即便預置路 徑訊息集合中沒有相應的尋路路徑,仍舊可以保證NPC在合理的區域內對玩家進行追踪,從而提升方案的可操作性。
可選地,在上述第7圖所對應的實施例的基礎上,請參閱第8圖,本發明實施例提供的伺服器的另一實施例中,所述伺服器40還包括:第二獲取模組405A,用於所述確定模組404確定與所述移動路徑匹配的第二尋路路徑之後,獲取所述第二尋路路徑的開銷資料,所述開銷資料用於表示計算資源當前的使用量,所述計算資源是指伺服器中用於計算尋路路徑的資源;第一判斷模組405B,用於判斷所述第二獲取模組405A獲取的所述第二尋路路徑的開銷資料是否大於目標開銷閾值;第一加入模組405C,用於若所述第一判斷模組405B判斷得到所述第二尋路路徑的開銷資料大於所述目標開銷閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;第一更新模組405D,用於若所述第一判斷模組405B判斷得到所述第二尋路路徑的開銷資料不大於所述目標開銷閾值,則根據所述第二尋路路徑的開銷資料更新歷史開銷資料,所述歷史開銷資料用於更新所述目標開銷閾值。
再次,本發明實施例中,介紹了一種根據路徑開銷資料來判斷是否可以加入預置路徑訊息集合的方法,即當路徑開銷資料較大時,將這條路徑儲存至預置路徑訊息集合中。透過上述方式,可以使得預置路徑訊息集合中儲存相對而言開銷資料較大的尋路路徑,以此在採用這類尋路路徑時無需伺服器再次執行路徑搜索算法,而是直接提取相應的路徑即可,從而緩解了伺服器的計算壓力,避免了由於開銷資料較大而帶來過高的計算資源 耗費的情况,提升了方案的實用性。
可選地,在上述第7圖所對應的實施例的基礎上,請參閱第9圖,本發明實施例提供的伺服器的另一實施例中,所述伺服器40還包括:第三獲取模組406A,用於所述確定模組404確定與所述移動路徑匹配的第二尋路路徑之後,獲取所述第二尋路路徑的熱度資料,所述第二尋路路徑的熱度資料用於表示第二尋路路徑的使用頻率;第二判斷模組406B,用於判斷所述第三獲取模組406A獲取的所述第二尋路路徑的熱度資料是否大於目標熱度閾值;第二加入模組406C,用於若所述第二判斷模組406B判斷得到所述第二尋路路徑的熱度資料大於所述目標熱度閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;第二更新模組407D,用於若所述第二判斷模組406B判斷得到所述第二尋路路徑的熱度資料不大於所述目標熱度閾值,則根據所述第二尋路路徑的熱度資料更新歷史熱度資料,所述歷史熱度資料用於更新所述目標熱度閾值。
再次,本發明實施例中,介紹了一種根據路徑選擇熱度來判斷是否可以加入預置路徑訊息集合的方法,即當路徑選擇熱度較高時,將這條路徑儲存至預置路徑訊息集合中。透過上述方式,可以使得預置路徑訊息集合中儲存相對而言選擇熱度較高的尋路路徑,以此在採用這類尋路路徑時無需伺服器再次執行路徑搜索算法,而是直接提取相應的路徑即可,從而緩解了伺服器的計算壓力,避免了由於開銷資料較大而帶來過高的計算資源耗費的情况,提升了方案的靈活性和實用性。
可選地,在上述第7圖所對應的實施例的基礎上,請參閱第10圖,本發明實施例提供的伺服器的另一實施例中,所述確定模組404包括:第一獲取單元4041,用於獲取所述第一模擬對象當前的第一位置以及所述第二模擬對象當前的第二位置;第一確定單元4042,用於根據所述第一獲取單元4041獲取的所述第一位置與所述第二位置確定所述第二模擬對象的第一目標移動位置,所述第一目標移動位置與所述第一位置之間的距離小於預置閾值,所述第二位置與所述第一目標移動位置構成所述第二尋路路徑。
再次,本發明實施例中,介紹了一種伺服器確定第二尋路路徑的具體實現方式,即根據第一模擬對象的移動位置來部署第二模擬對象的移動位置,多個位置最後構成一條較優的第二尋路路徑。透過上述方式,使得第二模擬對象能够實時地根據玩家的移動路徑進行路徑規劃,並且得到的第二尋路路徑更貼近真實情况,使得第二模擬對象可以準確地向玩家靠近,從而提升方案的可行性。
可選地,在上述第10圖所對應的實施例的基礎上,請參閱第11圖,本發明實施例提供的伺服器的另一實施例中,所述確定模組404還包括:第二獲取單元4043,用於所述第一確定單元4042根據所述第一位置確定所述第二模擬對象的目標移動位置之後,當所述第一模擬對象發生移動時,獲取所述第一模擬對象的第三位置以及所述第二模擬對象的第四位置;第二確定單元4044,用於根據所述第二獲取單元4043獲取的所述第三位置與所述第四位置確定所述第二模擬對象 的第二目標移動位置,所述第二目標移動位置與所述第三位置之間的距離小於預置閾值;所述第二更新模組用於根據所述第二位置與所述第一目標移動位置更新所述第二尋路路徑。
進一步地,本發明實施例中,如果第一模擬對象繼續移動,則伺服器也將控制第二模擬對象緊隨其後,繼續與第一模擬對象靠近,並且實時地更新第二尋路路徑。透過上述方式,解决在第一模擬對象持續移動的情况下,如何構建第二尋路路徑的問題,從而提升了方案的靈活性和實用性。
可選地,在上述第10圖或11所對應的實施例的基礎上,請參閱第12圖,本發明實施例提供的伺服器的另一實施例中,所述伺服器40還包括:儲存模組408A,用於分別將所述第二位置、所述第一目標移動位置以及所述第二目標移動位置依次儲存於路徑堆棧;第二檢測模組408B,用於檢測從所述第二位置到所述第二目標移動位置之間是否滿足直綫移動條件,若是,則從所述儲存模組408A儲存的所述路徑堆棧中清除所述第一目標移動位置。
更進一步地,本發明實施例中,對應第二模擬對象而言,還可以為其建立一個路徑堆棧,在該路徑堆棧中按照儲存第二模擬對象每次經過的位置點。透過上述方式,能够使得伺服器記憶第二模擬對象所經過的尋路路徑,為後續第二模擬對象按照原路返回提供了有效的解决手段,從而提升方案的實用性,並且採用堆棧的資料結構在實際應用中也具有較好的可行性。
可選地,在上述第12圖所對應的實施例的基礎上, 請參閱第13圖,本發明實施例提供的伺服器的另一實施例中,所述伺服器40還包括:構建模組409,用於所述控制模組403控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動之後,若所述第二模擬對象的移動位置滿足尋路返回條件,則根據所述路徑堆棧中的位置點構建第三尋路路徑,所述第三尋路路徑用於所述第二模擬對象返回至初始位置。
再進一步地,本發明實施例中,介紹了在第二模擬對象在追逐第一模擬對象一段時間或者一段距離後需要執行的返回機制,該返回機制主要利用堆棧的思路,達到先進後出的效果。透過上述方式,第二模擬對象在返回時無需伺服器再次計算返回路徑,而是直接按照原來尋路路徑返回即可,從而在返回的過程中减少了伺服器的計算量,並節省了伺服器的計算資源。
第14圖是本發明實施例提供的一種伺服器結構示意圖,該伺服器500可因配置或性能不同而產生比較大的差異,可以包括一個或一個以上中央處理器(central processing units,CPU)522(例如,一個或一個以上處理器)和儲存器532,一個或一個以上儲存應用程式542或資料544的儲存介質530(例如一個或一個以上海量儲存設備)。其中,儲存器532和儲存介質530可以是短暫儲存或持久儲存。儲存在儲存介質530的程式可以包括一個或一個以上模組(圖示沒標出),每個模組可以包括對伺服器中的一系列指令操作。更進一步地,中央處理器522可以設置為與儲存介質530通訊,在伺服器500上執行儲存介質530中的一系列指令操作。
伺服器500還可以包括一個或一個以上電源526,一個或一個以上有線或無線網路連接埠550,一個或一個以上輸入輸出連接埠558,和/或,一個或一個以上操作系統541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述實施例中由伺服器所執行的步驟可以基於該第14圖所示的伺服器結構。
其中,處理器522用於,當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;根據所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;若存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動。
本發明實施例提供了一種控制對象的方法及裝置,可用於網際網路技術領域,能够提高終端設備控制對象尋路的效率,降低終端設備的功耗。以下進行詳細說明。
本發明中的對像是指某個物理區域的動態物體或靜態物體,例如賽場中被遙控控制的機器人等;或者對象可以指應用界面上的動態物體或靜態物體,例如遊戲界面中的虛擬角色、各種裝備或障礙物等。每個對象在應用界面上都有對應的操作範圍,可以在自己的操作範圍內對其他對象進行操作,或者與其他對象進行交互。例如遊戲場景中,虛擬角色和裝備都有對應的攻擊範圍,在其攻擊範圍內才能對目標進行攻擊。
控制範圍是指對象的可控制範圍,可以在自身的可控制範圍內進行對應的操作,例如標記之類的編輯操作等。本發明中的控制範圍可包括至少一個控制區域,每個控制區域包括多個子控制區域,每個子控制區域容納一個對象。其中,對於同一個控制區域所包括的子控制區域,相鄰的子控制區域之間可連續或不連續,且各子控制區域的大小可相同或不相同。控制範圍可 以採用輪盤的形式體現,也可以採用其他的形式體現,控制區域和子控制區域的劃分和形狀可動態設計,可以是規則形狀或者不規則形狀,具體本發明不作限定。此外,每個對象的控制範圍的布局可相同或不同,也可以在移動過程中,根據臨近的對象實時動態計算生成,具體本發明不作限定。控制區域的個數和子控制區域的個數同樣不作限定。
如第15圖所示,為輪盤的一種示意圖,輪盤由一個圓環區域和一個圓形區域組成,二者同圓心,圓心代表對象A在應用界面上的位置。分別對圓環區域和圓形區域進行劃分,形成多個子區域,圓環區域的半徑和圓形區域的半徑可動態調整。圓環區域的半徑和圓形區域的半徑可根據應用界面上的各模擬對象的操作範圍計算得到,可以將屬於某個數值區間的多個操作範圍對應一個圓環區域或者圓形區域。然後根據應用界面上各模擬對象的體積計算出至少能够容納一定數量的對象的子控制區域,例如可以取所有對象的體積的中值或者最大值,也可以取大於某個閾值的權值,使得大多數對象在處於對象A的子控制區域時,能够與對象A的控制範圍內,與其相鄰的子控制區域的對象散開,彼此不會影響到對方的移動。在設計完控制區域和子控制區域後,最終形成一個如第15圖所示的輪盤。第15圖中的輪盤的圓心O就是對象當前在應用界面的位置,圓環的半徑可以根據其它戰場單位的攻擊距離來設定,每個圓環區域內的分割塊表示該對象周圍可以使用的區域。內外圓環都被分割成8各等分塊,表示O周圍有16個子控制區域可以被使用。需要說明的是,分割子控制區域可考慮戰場單位的體積,一個子控制區域最好能够將大部分對象包裹在內,可取戰場單位的中值或最大值。
由於不同的對象的操作範圍可能不同,對於不同操 作範圍的對象,被操作的對象到的作為操作發起方的對象的控制範圍可動態變化。考慮到一個對象在應用界面中近距離交互的對象有限,為减少控制範圍布局的複雜度,可以將屬於同一個數值區間的操作範圍劃定為一個控制區域,從而簡化控制範圍的布局,每個對象可以都使用相同的公用控制範圍的布局。例如,在遊戲場景中,為提高遊戲的流暢率,所有的虛擬角色都是用相同的輪盤。由於不同的虛擬角色的攻擊距離不同,對於不同攻擊距離的虛擬角色,被攻擊虛擬角色到的輪盤半徑可動態變化。一般情况下,遊戲裏所有虛擬角色都是用同一的輪盤。
為解决上述技術問題,本發明實施例主要提供以下技術方案:根據對象A的操作範圍定義控制區域,根據對象的體積定義子控制區域,以對象為中心,生成一個圍繞對象的控制區域。當有其他對象(例如對象B和對象C)在該對象A的控制範圍內時,若對象B和對象C都要與對象A交互,為避免二者對對象A的同一個子控制區域進行競爭,若對象B選擇了對象A的子控制區域1,那麽對象C會繞開子控制區域1,去選擇其他的子控制區域2,子控制區域2可以與子控制區域1屬於同一個控制區域,可以屬於不同的控制區域。控制區域2可以與子控制區域1相鄰或不相鄰,只要對象B和對象C佔據對象A的不同的子控制區域,即可實現避免競爭帶來的資源衝突,且無需在對象B已經佔據了子控制區域1的前提下,對象C只能重新啟動尋路算法的弊端。
由此可見,透過以上技術方案,能够有效的提高尋路的效率和準確率,一定程度上也减少頻繁啟動尋路算法帶來的功耗。
需要說明的是,需要說明的是,本發明所述的方法 可以應用到安裝了交互式應用的終端設備,也可以是作為交互式應用的客戶端,還可以應用於模擬控制軟體等,應用於控制交互式應用的後台伺服器,具體本發明不作限定。
請參照第16圖,以下對本發明提供一種控制對象的方法進行舉例說明,本發明實施例包括:
S111、接收用戶針對第一模擬對象的操作指令。
其中,所述操作指令指示所述第一模擬對象的移動路徑。
S112、根據所述操作指令指示的移動路徑匹配的尋路路徑,控制第一模擬對象向第二模擬對象所在的位置移動。
其中,第一模擬對象和第二模擬對象都具有一個控制範圍,第一模擬對象和第二模擬對象的控制範圍都包括至少一個控制區域,每個控制區域包括多個子控制區域。
可選的,所述第二模擬對象的控制範圍為圓環空間,所述控制範圍中的各子控制區域為對所述圓環空間進行等分後得到的子空間。
所述第一模擬對象的控制範圍中的各控制區域,以及所述第二模擬對象的控制範圍中的各控制區域可根據所述應用界面上的各模擬對象的操作範圍劃分。例如可以將屬於同一個數值區間的操作範圍劃定為一個控制區域。
所述第一模擬對象的控制範圍的子控制區域,以及所述第二模擬對象的控制範圍的子控制區域滿足如下條件:根據應用界面上的各模擬對象的體積劃分,以及至少容納應用界面上的預定義數量的對象。具體來說,根據應用界面上各模擬對象的體積計算出至少能够容納一定數量的對象的子控制區域,每個子控制區域最多容納一個對象。例如可以取所有 對象的體積的中值或者最大值,也可以取大於某個閾值的權值,使得第一模擬對象在處於第二模擬對象的子控制區域時,能够與第二模擬對象的控制範圍內,與其相鄰的子控制區域的其他對象散開,彼此不會影響到對方的移動。
S113、當所述第一模擬對象在所述第二模擬對象的控制範圍時,按照預設的選擇規則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中的一個子控制區域。
相較於習知技術,本發明提供的方案中,透過對應用界面上的對象設置控制範圍,控制範圍包括至少一個控制區域,每個控制區域包括多個子控制區域。使得在控制第一模擬對象尋路到第二模擬對象的控制範圍時,按照預設的選擇規則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中的一個子控制區域。透過這種子控制區域的劃分機制,使得尋路第二模擬對象的各模擬對象能够有序的選擇到第二模擬對象的控制範圍內的某個子控制區域,而不會與其他對尋路第二模擬對象的對象造成競爭,也無需另外啟動尋路,能够有效的提高尋路的效率和準確率,一定程度上也减少頻繁啟動尋路算法帶來的功耗。
可選的,在一些發明實施例中,所述按照預設的選擇規則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中的一個子控制區域,包括:當所述第一模擬對象在佔據所述第二模擬對象的控制範圍的第一子控制區域時,判斷所述第一子控制區域是否被佔據。
若被佔據,則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中除第一子控制區域之外的其它子控制區域。考慮到每個對象的操作範圍有限,一般選擇與之相鄰的子控 制區域。
若未被佔據,則控制所述第一模擬對象佔據所述第一子控制區域。
可選的,在一些發明實施例中,在控制所述第一模擬對象佔據所述第二模擬對象的控制範圍的一個子控制區域後,所述方法還包括:在所述第二模擬對象的控制範圍標記所述第一模擬對象佔據的有效子控制區域,和/或,標記所述第一模擬對象的控制範圍上被除所述第一模擬對象之外的對象佔據的子控制區域。也就是說,若第一模擬對象佔據第二模擬對象的某個子控制區域,那麽需要在第二模擬對象的控制範圍內的該子控制區域標記被該第一模擬對象佔據;若其他對象(包括第二模擬對象)佔據第一模擬對象的某些子控制區域,也需要在第一模擬對象的控制範圍內標記對應的被佔據的子控制區域,使得其它對象繞開被標記的子控制區域。並且每個對象都能够知曉自身佔據的子控制區域,以及自身的控制範圍內被佔據的子控制區域。
當確定佔據所述第一模擬對象的控制範圍上的任意子控制區域的第三對象離開所述第一模擬對象的控制範圍,且所述第三對象與所述第一模擬對象的距離大於預設閾值後,取消所述第三對象佔據的子控制區域的標記。
為便於理解,下面以遊戲場景進行說明。在遊戲界面中,在無動態阻擋情况下,虛擬角色尋路時,會直接朝著戰鬥目標走過去,由於各虛擬角色無視其它虛擬角色潜在的阻擋,所以虛擬角色之間,或者各虛擬角色控制的裝備之間很容易出現位置衝突的問題。下面用遊戲中存在的2個主要位置衝突的場景進行說明:
場景一中:多個虛擬角色尋路攻擊同一個目標時
當多個虛擬角色尋敵攻擊同一個目標時,容易出現重疊的問題。如第17圖,作為敵方的虛擬角色A和虛擬角色B尋路走到可攻擊O的位置時出現了位置衝突,虛擬角色C因為攻擊距離遠,所以沒有和虛擬角色A和虛擬角色B位置衝突。虛擬角色O維護一個輪盤,作為敵方的虛擬角色只能尋路到虛擬角色O的輪盤上可用的子控制區域,當某個子控制區域被敵方虛擬角色佔據後,其它虛擬角色只能佔據該輪盤上其他的子控制區域(考慮到虛擬角色的攻擊距離有限,一般選擇與之相鄰的子控制區域)。如第18圖所示,根據虛擬角色之外的虛擬角色的攻擊距離,對虛擬角色O維護了一個2層輪盤,第18圖中的數位標號表示一個子控制區域的索引,可將8指示的子控制區域簡稱為#8子控制區域,其他同理,類似之處,不再贅述。虛擬角色A先尋路到了虛擬角色O的#8子控制區域,B發現虛擬角色O的#8子控制區域被佔據,則虛擬角色B選擇了相鄰的可用的#1子控制區域,這樣虛擬角色A和虛擬角色B成功的散開。
場景二中:多個虛擬角色相互尋路攻擊時
當多個虛擬角色相互尋路攻擊對方時,容易出現位置衝突的問題。如第19圖所示,虛擬角色A尋路攻擊虛擬角色C,虛擬角色B尋路攻擊虛擬角色A,當虛擬角色A和虛擬角色B都在虛擬角色C的攻擊範圍內後,最終出現了虛擬角色B和虛擬角色C的位置相互衝突。
由於每個虛擬角色都維護一個自己的輪盤,當尋路到對方的輪盤上的可用子控制區域時,除了標記自己佔據對方的子控制區域,還要標記自己輪盤上被其它虛擬角色佔據的子控制區域。如第20圖所示,虛擬角色A尋路到虛擬角色C到虛擬角色C 的輪盤上的#8子控制區域時,標記虛擬角色C佔用虛擬角色A的輪盤的#4子控制區域,虛擬角色B尋路時發現A的#4子控制區域被佔用,便會改用虛擬角色A的#3子控制區域,從而使得虛擬角色B和虛擬角色C被成功散開。
由此可見,虛擬角色的輪盤上的子控制區域一旦被標記使用,其它尋路的虛擬角色就只能選擇該輪盤上其它的可用子控制區域。標記在佔據該子控制區域的虛擬角色死亡或者離開一段距離後會從該輪盤上取消,以供後續尋路到該輪盤的虛擬角色使用。
其中,對於各虛擬角色的輪盤的維護,各虛擬角色尋路時採用的尋路算法跟時間複雜度相關。其中,時間複雜度定量的描述了該時間複雜度算法的運行時間,尋路算法的時間複雜度越低,那麽尋路算法的效率越高。本方案中,尋路算法的時間複雜度可達到O(1),由此可見,在實際遊戲場景中,採用本尋路算法能够明顯提高尋路的效率。如第21圖展示了採用本方案的尋路算法,使得射程不同的跑車、遠程兵和近程兵攻擊敵方跑車時散開效果,玩家可以輕鬆的觀察每個虛擬角色或裝備,從而選擇要攻擊的目標。
以上對本發明中一種控制對象的方法進行說明,以下對執行上述控制對象的方法的控制對象的裝置進行描述。
參照第22圖,對控制對象的裝置80進行說明,所述控制對象的裝置80包括:收發模組801,用於接收用戶針對第一模擬對象的操作指令;控制執行緒模組802,用於根據所述收發模組801接收到的所述操作指令指示的移動路徑匹配的尋路路徑,控制第一 模擬對象向第二模擬對象所在的位置移動,所述第二模擬對象具有一個控制範圍,所述第二模擬對象的控制範圍包括至少一個控制區域,每個控制區域包括多個子控制區域;當所述第一模擬對象在所述第二模擬對象的控制範圍時,按照預設的選擇規則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中的一個子控制區域。
本發明實施例中,預先對應用界面上的對象設置控制範圍,使得控制執行緒模組801在控制第一模擬對象尋路到第二模擬對象的控制範圍時,按照預設的選擇規則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中的一個子控制區域。透過這種子控制區域的劃分機制,使得尋路第二模擬對象的各模擬對象能够有序的選擇到第二模擬對象的控制範圍內的某個子控制區域,而不會與其他對尋路第二模擬對象的對象造成競爭,也無需另外啟動尋路,能够有效的提高尋路的效率和準確率,一定程度上也减少頻繁啟動尋路算法帶來的功耗。
可選的,在一些發明實施例中,所述控制執行緒模組801具體用於:當所述第一模擬對象在佔據所述第二模擬對象的控制範圍的第一子控制區域時,判斷所述第一子控制區域是否被佔據;若被佔據,則控制所述第一模擬對象佔據所述第二模擬對象的控制範圍中除第一子控制區域之外的其它子控制區域;若未被佔據,則控制所述第一模擬對象佔據所述第一子控制區域。
可選的,在一些發明實施例中,所述第一模擬對象 具有一個控制範圍,所述控制執行緒模組801在控制所述第一模擬對象佔據所述第二模擬對象的控制範圍的一個子控制區域後,還用於:在所述第二模擬對象的控制範圍標記所述第一模擬對象佔據的有效子控制區域,和/或,標記所述第一模擬對象的控制範圍上被除所述第一模擬對象之外的對象佔據的子控制區域。
可選的,在一些發明實施例中,所述控制執行緒模組801還用於:當確定佔據所述第一模擬對象的控制範圍上的任意子控制區域的第三對象離開所述第一模擬對象的控制範圍,且所述第三對象與所述第一模擬對象的距離大於預設閾值後,取消所述第三對象佔據的子控制區域的標記。
可選的,在一些發明實施例中,所述第二模擬對象的控制範圍為圓環空間,所述控制範圍中的各子控制區域為對所述圓環空間進行等分後得到的子空間。
可選的,在一些發明實施例中,所述第二模擬對象的控制範圍的子控制區域滿足如下條件:根據應用界面上的各模擬對象的體積劃分,以及至少容納應用界面上的預定義數量的對象。
可選的,在一些發明實施例中,所述第二模擬對象的控制範圍中的各控制區域根據所述應用界面上的各模擬對象的操作範圍劃分。
上面從單元化功能實體的角度對本發明實施例中的裝置進行了描述,下面從硬體處理的角度對本發明實施例中的裝置進行描述。
本發明實施例還提供了一種終端設備,該終端設備 具體為一種控制對象的方法中描述的終端設備,如第23圖所示,為了便於說明,僅示出了與本發明實施例相關的部分,具體技術細節未揭示的,請參照本發明實施例方法部分。下面以終端設備為手機為例:第23圖示出的是與本發明實施例提供的移動終端相關的手機的部分結構的方塊圖。參考第23圖,手機包括:射頻(英文全稱:Radio Frequency,英文簡稱:RF)電路910、儲存器920、輸入單元930、顯示單元940、傳感器950、音頻電路960、無線保真(英文全稱:wireless fidelity,英文簡稱:Wi-Fi)模組970、處理器980、以及電源990等部件。所屬技術領域具有通常知識者可以理解,第23圖中示出的手機結構並不構成對手機的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
下面結合第23圖對手機的各個構成部件進行具體的介紹:RF電路910可用於收發訊息或通話過程中,訊號的接收和發送,特別地,將基地台的下行訊息接收後,給處理器980處理;另外,將設計上行的資料發送給基地台。通常,RF電路910包括但不限於天綫、至少一個放大器、收發信機、耦合器、低噪聲放大器(英文全稱:Low Noise Amplifier,英文簡稱:LNA)、雙工器等。此外,RF電路910還可以透過無線通訊與網路和其他設備通訊。上述無綫通訊可以使用任一通訊標準或協議,包括但不限於全球行動通訊系統(英文全稱:Global System of Mobile communication,英文簡稱:GSM)、通用封包無線電服務(英文全稱:General Packet Radio Service,GPRS)、分碼多工(英文全稱:Code Division Multiple Access,英文簡稱:CDMA)、寬頻分碼多 工存取(英文全稱:Wideband Code Division Multiple Access,英文簡稱:WCDMA)、長期演進(英文全稱:Long Term Evolution,英文簡稱:LTE)、電子郵件、簡訊服務(英文全稱:Short Messaging Service,英文簡稱:SMS)等。
儲存器920可用於儲存軟體程式以及模組,處理器980透過運行儲存在儲存器920的軟體程式以及模組,從而執行手機的各種功能應用以及資料處理。儲存器920可主要包括儲存程式區和儲存資料區,其中,儲存程式區可儲存操作系統、至少一個功能所需的應用程式(比如聲音播放功能、圖像播放功能等)等;儲存資料區可儲存根據手機的使用所創建的資料(比如音頻資料、電話簿等)等。此外,儲存器920可以包括高速隨機存取儲存器,還可以包括非揮發性儲存器,例如至少一個磁盤儲存器件、記憶體器件、或其他揮發性固態儲存器件。
輸入單元930可用於接收輸入的數字或字符訊息,以及產生與手機的用戶設置以及功能控制有關的鍵訊號輸入。具體地,輸入單元930可包括觸控面板931以及其他輸入設備932。觸控面板931,也稱為觸控面板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板931上或在觸控面板931附近的操作),並根據預先設定的程式驅動相應的連接裝置。可選的,觸控面板931可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的訊號,將訊號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸訊息,并將它轉換成觸點坐標,再送給處理器980,並能接收處理器980發來的命令並加以執行。此外,可以采用電阻式、電容式、紅外綫以及表面聲波等多種類型實現觸控面板931。除了觸控面板931,輸入單元930還可以包括 其他輸入設備932。具體地,其他輸入設備932可以包括但不限於物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌迹球、滑鼠、操作杆等中的一種或多種。
顯示單元940可用於顯示由用戶輸入的訊息或提供給用戶的訊息以及手機的各種選單。顯示單元940可包括顯示面板941,可選的,可以採用液晶顯示器(英文全稱:Liquid Crystal Display,英文簡稱:LCD)、有機發光二極體(英文全稱:Organic Light-Emitting Diode,英文簡稱:OLED)顯示器等形式來配置顯示面板941。進一步的,觸控面板931可覆蓋顯示面板941,當觸控面板931檢測到在其上或附近的觸摸操作後,傳送給處理器980以確定觸摸事件的類型,隨後處理器980根據觸摸事件的類型在顯示面板941上提供相應的視覺輸出。雖然在第23圖中,觸控面板931與顯示面板941是作為兩個獨立的部件來實現手機的輸入和輸入功能,但是在某些實施例中,可以將觸控面板931與顯示面板941結合而實現手機的輸入和輸出功能。
手機還可包括至少一種傳感器950,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環境光傳感器及接近傳感器,其中,環境光傳感器可根據環境光綫的明暗來調節顯示面板941的亮度,接近傳感器可在手機移動到耳邊時,關閉顯示面板941和/或背光。作為運動傳感器的一種,加速計傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用於識別手機姿態的應用(比如橫竪螢幕切換、相關游戲、磁力計姿態校準)、振動識別相關功能(比如計步器、敲擊)等;至於手機還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路960、揚聲器961,傳聲器962可提供用戶與 手機之間的音頻連接埠。音頻電路960可將接收到的音頻資料轉換後的電訊號,傳輸到揚聲器961,由揚聲器961轉換為聲音訊號輸出;另一方面,傳聲器962將收集的聲音訊號轉換為電訊號,由音頻電路960接收後轉換為音頻資料,再將音頻資料輸出處理器980處理後,經RF電路910以發送給比如另一手機,或者將音頻資料輸出至儲存器920以便進一步處理。
Wi-Fi屬於短距離無線傳輸技術,手機透過Wi-Fi模組970可以幫助用戶收發電子郵件、瀏覽網頁和訪問串流媒體等,它為用戶提供了無綫的寬頻網際網路訪問。雖然第23圖示出了Wi-Fi模組970,但是可以理解的是,其並不屬於手機的必須構成,完全可以根據需要在不改變發明的本質的範圍內而省略。
處理器980是手機的控制中心,利用各種連接埠和綫路連接整個手機的各個部分,透過運行或執行儲存在儲存器920內的軟體程式和/或模組,以及調用儲存在儲存器920內的資料,執行手機的各種功能和處理資料,從而對手機進行整體監控。可選的,處理器980可包括一個或多個處理單元;優選的,處理器980可結合應用處理器和調製解調處理器,其中,應用處理器主要處理操作系統、用戶界面和應用程式等,調製解調處理器主要處理無綫通訊。可以理解的是,上述調製解調處理器也可以不結合到處理器980中。
手機還包括給各個部件供電的電源990(比如電池),優選的,電源可以透過電源管理系統與處理器980邏輯相連,從而透過電源管理系統實現管理充電、放電、以及功耗管理等功能。
儘管未示出,手機還可以包括攝影鏡頭、藍牙模組等,在此不再贅述。
在本發明實施例中,該手機所包括的處理器980還具有控制執行控制對象的方法中由終端設備執行的方法流程。
本發明實施例提供了一種尋路方法以及裝置,用於根據模擬對象的起始點與目標點之間所處的尋路路徑採用對應的尋路策略,在包含多種尋路路徑的地圖的情况下,可以有效地减少在尋路過程中使用A星算法,從而减少計算尋路路徑的時間。
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基於本發明中的實施例,所屬技術領域具有通常知識者在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。
本發明的說明書和權利要求書及上述圖式中的術語“第一”、“第二”、“第三”、“第四”等(如果存在)是用於區別類似的對象,而不必用於描述特定的順序或先後次序。應該理解這樣使用的資料在適當情况下可以互換,以便這裏描述的實施例能够以除了在這裏圖示或描述的內容以外的順序實施。此外,術語“包括”和以及他們的任何變形,意圖在於覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限於清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對於這些過程、方法、產品或設備固有的其它步驟或單元。
為了便於理解本發明實施例,下面先將介紹下本發明實施例涉及到的一些基本概念以及總的核心思想。
本發明實施例將遊戲場景地圖劃分為可行走區域以及不可行走區域,其中,遊戲場景地圖中的可行走區域又劃分成複數個導航網格,具體將可行走區域劃分為多少個導航網格由實 際遊戲場景地圖以及所採用的導航網格生成方式確定,具體此處不做限定。導航網格生成方式可以是透過手動方式生成導航網格,即透過人工配置生成,手動生成方式常用於遊戲場景地圖比較小,簡單的情况下使用。也可以是透過自動方式生成導航網格,即透過一些導航網格自動生成算法,例如點集的三角剖分算法(Delaunay triangulation algorithm)等算法,自動生成方式常用於遊戲場景地圖比較大,複雜的情况下使用,可以减少手動生成方式帶來的繁瑣操作。
本發明實施例核心點在於首先根據模擬對象,即遊戲場景地圖中的控制對象在可行走區域中的起始點以及目標點的位置,識別出模擬對象本次尋路是否出現本發明實施例指定的特殊地形,如果有,則避開使用A星算法,針對具體的特殊地形,採用該特殊地形的類型相應的尋路策略。如果沒有本發明實施例指定的特殊地形,則使用A星算法,尋找起始點到目標點所要經過的一系列導航網格,最後生成尋路路徑。尋路地形也可稱為尋路路徑,具體本申請不作限定。為了便於理解,下面將結合具體的遊戲場景圖對本發明實施中的遊戲場景地圖的劃分以及本發明實施例所提的特殊地形先做介紹:如第24圖所示的,第24圖為本發明實施例一種尋路方法一個遊戲場景地圖示意圖,本發明實施例中將第24圖所示的遊戲場景地圖劃分為可行走區域以及不可行走區域,粗黑線外的區域為不可行走區域(在遊戲場景中為建築物等障礙),在不可行走區域中沒有劃分導航網格,粗黑綫表示遊戲場景地圖中模擬對象的不可透過邊,粗黑綫內的區域為可行走區域,本發明實施例中將可行走區域劃分為複數個導航網格,生成對應的導航網格資料。其中,導航網格優選地劃分三個角形導航網格,為了便於說 明,下面在本發明實施例中所描述的導航網格均以三角形導航網格進行描述,如第24圖中的細黑線所構成的三角形導航網格。另外需要說明的是,在本發明實施例中,可行走區域中的導航網格還可以是其他的多邊形,例如四邊形等,具體在本發明實施例中不做限定。
如第25圖所示,第25圖為本發明實施例一種尋路方法另一遊戲場景地圖示意圖,在本發明實施例中,將遊戲場景地圖的可行走區域的尋路路徑劃分為如下三類尋路路徑
特殊地形一:直綫尋路路徑,直綫尋路路徑是指模擬對象在起始點到目標點可直綫行走的地形,則說明模擬對象的在起始點到目標點之間的尋路路徑為直綫尋路路徑。比如在第25圖中,模擬對象的起始點為A點,目標點為B點,而A點到B點之間可直綫行走(無障礙物),則說明模擬對象在A點到B點在遊戲場景地圖的尋路路徑為直線尋路路徑。
特殊地形二:管道尋路路徑,管道尋路路徑是指模擬對象在起始點至目標點的地形不是直綫可行走地形,呈現“管道式”形狀,管道內的三角形導航網格序列具有連續的導航索引,管道周圍的邊為不可透過邊,管道內的每個三角形導航網格有且僅有一個邊是不可透過邊,且延管道的任一方向,三角形導航網格的索引值是連續的,比如上第25圖所示,模擬對象從a點到b點的尋路路徑即是管道尋路路徑。在本發明實施例中,透過遊戲設計人員人為勾出出管道尋路路徑,在起始點往目標點方向,為管道尋路路徑中的三角形導航網格進行索引編號,生成三角形導航網格序列索引值,並記錄生成的索引值,具體如第26圖所示,第26圖為本發明實施例一種尋路方法中管道尋路路徑一個索引方式示意圖。需要說明的是,第26圖所示的導航網格序列索引方式在這 裏只是舉例說明,在實際應用中可以有多種索引方式,具體此處不做限定。
地形三:將不是上述直綫尋路路徑,以及不是上述管道尋路路徑的尋路路徑在本發明實施例中定義為地形三,具體如第27圖所示,第27圖為本發明實施例一種尋路方法另一遊戲場景地圖示意圖,模擬對象(許翠柏)從當前位置,尋路到孫鐵匠處,有上下兩條路綫,中間的假山,即為障礙物。這種地形,說明既不是上述描述中的可直綫行走的地形,也不是上述描述中的管道尋路路徑。
在本發明實施例中,透過識別遊戲場景地圖中的控制對象在可行走區域中的起始點以及目標點的位置,識別本次尋路是否出現本發明實施例指定的直綫尋路路徑以及管道尋路路徑,如果有,則避開使用A星算法,針對具體尋路路徑,採用尋路路徑的類型相應的尋路策略。下面透過具體的實施例對本發明實施例進行描述:請參閱第28圖,第28圖為本發明實施例一種尋路方法一個實施例流程示意圖,包括:
S121、確定模擬對象的起始點以及目標點。
在用戶操作模擬對象,即操作遊戲場景中的被控制對象時,一般會透過點擊目標點,在本發明實施例,可以確定模擬對象在遊戲場景地圖中的起始點以及目標點。
本發明實施例主要適用於安裝有遊戲應用的終端設備中,例如,該終端設備可以是包括,但不局限於電腦,手機,筆記型電腦,個人數位助理(英文全稱:Personal Digital Assistant,縮寫:PDA)等終端設備,具體此處不做限定。
另外需要說明的是,本發明實施例適用於各種各樣 的遊戲應用中,比如遊戲應用泛指各種各樣的角色扮演遊戲(Role-playing game)類的單機遊戲或網頁遊戲等,例如以手機遊戲為例,具體可以是指王者榮耀、王者之劍,等新禦劍天涯手機遊戲,具體此處不做任何限定。
S122、根據所述起始點以及目標點確定所述模擬對象在遊戲場景地圖上的尋路路徑。
當確定了模擬對象的起始點以及目標點之後,根據起始點以及目標點確定模擬對象在遊戲場景地圖上的尋路路徑。
S123、根據所述尋路路徑的類型對所述模擬對象採取與所述類型對應的尋路策略。
在本發明實施例中,當根據模擬對象的起始點以及目標點確定了模擬對象的在遊戲場景地圖上的尋路路徑後,根據尋路路徑的類型對模擬對象採取與尋路路徑的類型對應的尋路策略,其中,不同的尋路路徑的類型配置有不同的尋路策略。
從以上技術方案可以看出,本發明實施例提出了一種尋路方法,透過確定模擬對象的起始點以及目標點,根據所述起始點以及目標點確定所述模擬對象在遊戲場景地圖上的尋路路徑,根據所述尋路路徑的類型對所述模擬對象採取與所述類型對應的尋路策略,其中,不同類型的尋路路徑配置有不同的尋路策略。即在本發明實施例中,不是採用的一刀切的方式,即不是每次尋路,都會應用A星算法這一尋路策略進行尋路,而是根據模擬對象的起始點與目標點之間所處的尋路路徑是不是本發明實施中描述的特殊地形,再根據尋路路徑的類型採用對應的尋路策略,可以有效地减少在尋路過程中使用A星算法,從而减少計算尋路路徑的時間。
其中,在本發明實施例中,所述遊戲場景地圖被劃 分出可行走區域,所述可行走區域被劃分為至少2個導航網格,其中,具體的可行走區域被劃分為多少個導航網格由實際的遊戲場景地圖確定,具體此處不做限定。
另外,優選地,在本發明實施例中,導航網格優選為三角形導航網格,還可以是其他的多邊形導航網格,例如四變形等,具體此處不做限定。
所述根據起始點以及目標點確定所述模擬對象在遊戲場景地圖上的尋路路徑,包括:
a.確定所述目標點是否在第一導航網格內,若所述目標點在所述第一導航網格內,則確定所述尋路路徑為所述直線尋路路徑,其中,所述第一導航網格為所述起始點所在的導航網格,應理解,起始點與目標點在同一導航網格內,則起始點與目標點必定在同一平面上,即起始點與目標點必定能直綫行走,起始點到目標點在遊戲場景地圖中的尋路路徑為直線尋路路徑。
b.若所述目標點不在所述第一導航網格內,則確定所述第一導航網格中是否有可透過邊與目標直線相交,所述目標直線為所述起始點到所述目標點的直線;
c.若確定所述第一導航網格中有可透過邊與所述目標直線相交,則將所述第二導航網格作為所述第一導航網格,所述第二導航網格為所述可透過邊相鄰的導航網格;
d.重新執行步驟a至c,直至確定所述第一導航網格中無可透過邊與所述目標直線相交;
e.若確定所述第一導航網格中無可透過邊與所述目標直線相交,則確定所述尋路路徑不是所述直線尋路路徑。
即在本發明實施例中,首先透過確定起始點與目標點是否同在一導航網格內,若在則說明起始點與目標點之間肯定 在同一個平面上,模擬對象從起始點往目標點可直綫行走,說明模擬對象在起始點與目標點之前的尋路路徑為直綫尋路路徑。若起始點與目標點不在同一導航網格內,此時則透過起始點與目標點之間的直綫,判斷模擬對象在始點與目標點之間的尋路路徑是否為直綫尋路路徑。
在本發明實施例中,在一種可能的實現中,所述遊戲場景地圖中的可行走區域的2導航網格作為導航網格序列,其中,所述導航網格序列中的導航網格相鄰,本發明實施例中的導航網格序列為前述描述中,人為配置的管道尋路路徑中的導航網格序列,導航網格序列配置有對應的索引值。
所述根據所述起始點以及目標點確定所述模擬對象在遊戲場景地圖上的尋路路徑,還包括:當確定所述尋路路徑不是所述直線尋路路徑時,確定所述第一導航網格與第三導航網格是否在同一導航網格序列中,其中,所述第三導航網格為所述目標點所在的導航網格;若是,則確定所述尋路路徑為管道尋路路徑;若否,則確定所述尋路路徑不是所述管道尋路路徑。
即上述提出了一種確定起始點到目標點在遊戲場景地圖中是否為直綫尋路路徑,以及是否為管道尋路路徑的方法,增加了方案的可實施性。
為了便於理解上述描述的確定尋路路徑是否為直綫尋路路徑以及管道尋路路徑的方式,下面透過具體例子對直綫尋路路徑以及管道尋路路徑的識別過程分別進行舉例說明;
一、關於直線尋路路徑識別過程:
1.假設在本發明實施例中,遊戲場景地圖中可行走區域被劃分為三角形導航網格資料為Data1,在該Data1中包含每個 三角形導航網格的對應的索引值,假設模擬對象的起始點為A,目標點為B,從A點到B點打一條直線(可以是以A為起始點,延B的方向的射線),記為R。
2.設三角形導航網格T1為A所在的三角形導航網格。
3.檢測目標點B是否在T1內,如果檢測到目標點B在T1內,說明A以及B在同一個三角形導航網內,則算法結束,說明從A點到B點可直線行走,即A點到B點在遊戲場景地圖上的地形為直線尋路路徑。
4.若在步驟2中確定出目標點B不在T1內,則比較T1中是否有可透過邊與R相交,如果T1中沒有可透過邊與R相交,則算法結束,說明A點到B點之間直線行走時存在障礙物,即從A點到B點不可直線行走。
如果T1中有可透過邊與R相交,則從Data1取出該T1可透過邊的相鄰三角形導航網格,記為T2;
5.將T2賦給T1,即T1=T2,重新執行上述步驟。
透過上述步驟可以判斷出起始點A與目標點B之間在遊戲場景地圖上的尋路路徑是否為直線尋路路徑。
其中,需要說明的是,在本發明實施例,確定一個點是否在一個三角形導航網格內有多種方法,例如,以上述例子為例,確定目標點B是否在T1內有多種檢測方法,比如透過以下向量法的方式進行計算:假設三角形為T,三角形的三個頂點分別為P1、P2以及P3。計算向量P1P2和向量P1B的叉乘,記為V1,計算向量P2P3和向量P2B的叉乘,記為V2,計算向量P3P1和向量P3B的叉乘,記為V3。其中,上述V1、V2、V3是三維向量,記他們的三維值分別 為z1、z2、z3。比較z1、z2、z3符號,如果都相同,則說明B點在T1內,有不相同的,則說明B點不在T1內。
需要說明的是,確定一個點是否在一個三角形內可以有多種方法,具體此處不做限定。比如面積法,例如透過面積法確定一個點是否在一個三角形內,例如,如果三角形BP1P2、BP1P3和BP2P3的面積之和與三角形P 1P2P3的面積相等,則可確定點B在三角形P1P2P3內。又比如,還可以透過線段法確定一個點是否在一個三角形導航網格內,例如以下一個簡單的線段法:如果線段BP1與線段BP3、或者線段BP2與線段P1CP3、或者線段P2P3與線段P1P2有交點,則可確定點B在三角形P1P2P2之外,反之,則可確定B點在三角形P1P2P2內。
二、關於管道尋路路徑識別過程:
1.假設人為配置的管道尋路路徑中的導航網格序列資料為Data2,當確定尋路路徑不是直線尋路路徑後,確定A點所在的三角形導航網格,從Data1中取出A點所在的三角形導航網格對應的索引值,記為M1;確定B點所在的三角形導航網格,從Data1中取出B點所在的三角形導航網格的索引值,記為M2。
2.遍歷本發明實施例遊戲地圖場景中所有的Data2資料,如果M1和M2都屬於某一Data2資料的三角形導航網格序列中的值,則A點到B點尋路的尋路路徑是個管道尋路路徑,否則不是。
在本發明實施例中,所述根據所述尋路路徑採用對應的尋路策略,包括:當所述尋路路徑為所述直綫尋路路徑時,則將所述起始點以及目標點的直綫連接路徑作為所述模擬對象的尋路路徑進行尋路; 當所述尋路路徑為所述管道尋路路徑時,則將所述起始點與所述目標點之間的導航網格序列作為所述模擬對象的尋路路徑進行尋路。比如,假設起始點所處的三角形導航網格索引值是T0,目標點所處的三角形導航網索引值是Tn,則[T0,Tn]的三角形導航網格序列的索引區間,即是尋路路徑對應的三角形導航網格序列。
當所述尋路路徑不是所述直線尋路路徑,並且不是所述管道尋路路徑時,則根據A星算法計算所述模擬對象的尋路路徑進行尋路。
即在本發明實施例中,不是採用的一刀切的方式,即不是每次尋路,都會應用A星算法這一尋路策略進行尋路,而是根據模擬對象的起始點與目標點之間所處的尋路路徑是不是本發明實施中的特殊地形,再根據尋路路徑的類型採用對應的尋路策略,可以有效地减少在尋路過程中使用A星算法,從而减少計算尋路路徑的時間。
在本發明實施例中,所述根據A星算法計算所述模擬對象的尋路路徑進行尋路,包括:將所述第一導航網格的邊上的中點到所述目標點的直線距離作為所述A星算法的估值函數;根據所述估值函數,透過所述A星算法計算出的所述模擬對象的尋路路徑進行尋路。
即在本發明實施例中,如果直綫尋路路徑以及管道尋路路徑都沒有識別出來,則採用優化後的A星算法對A點到B點進行尋路,其中優化的部分是估值函數。為了便於理解,下面先對A星算法做個簡單的介紹:由前述背景技術描述可知,A星算法,是一種啟發式的算法,是對於一個有多個尋路節點的地圖上找到起始點到達目 標點的算法。假設從尋路起始點到地圖中任何節點的距離表示為g(m),該任何節點至尋路目標點距離設為h(m),那麽本算法的公式可以表示為:f(m)=g(m)+h(m);其中,A星算法的步驟可以概括為:
1.假設尋路地圖存在有很多節點(Node),包括尋路的起始點S和尋路目標點E。
2.將與尋路起始點S相鄰的所有節點依次加入一個表,記為OPEN_TABLE。
3.遍歷OPEN_TABLE表中所有的Node,依次求出每個Node的f(m)值,即OPEN_TABLE表中每個Node到尋路目標點E的距離,設f(m)值最小的Node是P,則將P從OPEN_TABLE表去除,並加入到另一個表CLOSED_TABLE中。
4.遍歷與上述節點P相鄰的所有節點,如果遍歷的節點在CLOSED_TABLE中,則不做任何處理,如果遍歷的節點在上述OPEN_TABLE中,假設遍歷出的節點為節點1,則求出節點1到達目標點的f(m)值,若節點1到達目標點的f(m)值小於已有的f(m)值,則更新該節點1的f(m)值為最新的f(m)值。如果遍歷出的節點1不在上述OPEN_TABLE表中,則把節點1加到OPEN_TABLE中。
5.重複執行步驟3和步驟4,直到發現節點P相鄰的所有節點中,有節點為尋路目標點E,則尋路結束。
6.如果步驟5中找到尋路目標點E,則依次遍歷節點P的路徑節點,得到到達目標點所要經過的節點列表。
在本發明實施例中,三角形導航網格的邊,即為上述A星算法介紹中的節點,估值函數h(m),即為三角形導航網格 的邊的中點至目標點的距離。即本方案採用三角形邊的中點到目標點的直線距離,作為估值函數的值,而不是三角形導航網格三角形的頂點至目標點的距離作為估值函數的值,經這一優化後,大大降低了模擬對象在尋路採用A星算法時發生繞遠情况的發生。
至此,本發明實施例方法部分介紹完畢,下面結合具體第29圖所示的流程圖對本發明實施例的完整流程進行簡要概括:相關美術人員製作遊戲場景的完整場景圖,美術人員將該場景圖導入3ds max軟體中,並將不可行走區域進行“勾邊”,使用3ds max軟體自身的功能,生成三角形導航網格資料,在生成的三角形導航網格中,透過人為方式識別出管道尋路路徑,當從起始點A點向目標點B點尋路時,A點到B點是否屬於直線尋路路徑,若是則從A到B的直線連接路徑作為尋路路徑進行尋路;若不是直線尋路路徑,則識別A點到B點是否屬於管道尋路路徑,若識別A點到B點是管道尋路路徑,則從A到B的導航網格序列作為尋路路徑進行尋路,若識別A點到B點不是管道尋路路徑,則採用本發明實施例中優化後的A星算法進行描述,具體細節詳見上述實施例中對應的描述。
上面對本發明實施例中一種尋路方法進行了介紹,下面對本發明實施例中的尋路裝置進行介紹:請參閱第30圖,第30圖為本發明實施例一種尋路裝置一個實施例結構示意圖,包括:第一確定模組101,用於確定模擬對象的起始點以及目標點;第二確定模組102,用於根據所述第一確定模組101確定的所述起始點以及目標點確定所述模擬對象在遊戲場景地圖 上的尋路路徑;尋路模組103,用於根據所述第二確定模組102確定的所述尋路路徑的類型對所述模擬對象採取與所述類型對應的尋路策略,其中,不同類型的尋路路徑配置有不同的尋路策略。
在一種可能的實現中,所述遊戲場景地圖被劃分出可行走區域,所述可行走區域被劃分為至少2個導航網格;所述第二確定模組102具體用於:a.確定所述目標點是否在第一導航網格內,若所述目標點在所述第一導航網格內,則確定所述尋路路徑為所述直線尋路路徑,所述第一導航網格為所述起始點所在的導航網格;b.若所述目標點不在所述第一導航網格內,則確定所述第一導航網格中是否有可透過邊與目標直線相交,所述目標直線為所述起始點到所述目標點的直線;c.若確定所述第一導航網格中有可透過邊與所述目標直線相交,則將所述第二導航網格作為所述第一導航網格,所述第二導航網格為所述可透過邊相鄰的導航網格;d.重新執行步驟a至c,直至確定所述第一導航網格中無可透過邊與所述目標直線相交;e.若確定所述第一導航網格中無可透過邊與所述目標直線相交,則確定所述尋路路徑不是所述直線尋路路徑。
在一種可能的實現中,所述遊戲場景地圖中的至少2導航網格作為導航網格序列,所述導航網格序列中的導航網格相鄰;所述第二確定模組102具體還用於:當確定所述尋路路徑不是所述直線尋路路徑時,確定所述第一導航網格與第三導航網格是否在同一導航網格序列 中,所述第三導航網格為所述目標點所在的導航網格;若是,則確定所述尋路路徑為管道尋路路徑;若否,則確定所述尋路路徑不是所述管道尋路路徑。
在一種可能的實現中,所述尋路模組具體用於:當所述尋路路徑為所述直線尋路路徑時,則將所述起始點以及目標點的直線連接路徑作為所述模擬對象的尋路路徑進行尋路;當所述尋路路徑為所述管道尋路路徑時,則將所述起始點與所述目標點之間的導航網格序列作為所述模擬對象的尋路路徑進行尋路;當所述尋路路徑不是所述直線尋路路徑,並且不是所述管道尋路路徑時,則根據A星算法計算所述模擬對象的尋路路徑進行尋路。
在一種可能的實現中,所述尋路模組具體用於包括:當所述尋路路徑不是所述直線尋路路徑,並且不是所述管道尋路路徑時,將所述第一導航網格的邊上的中點到所述目標點的直綫距離作為所述A星算法的估值函數;根據所述估值函數,透過所述A星算法計算所述模擬對象的尋路路徑進行尋路。
上面從模組化功能的角度對本申請實施例中的尋路裝置進行了描述,下面從硬體處理的角度對本申請實施例中的尋路裝置進行描述,如第31圖所示,為了便於說明,僅示出了與本申請實施例相關的部分,具體技術細節未揭示的,請參照本申請實施例對應的方法部分,請參閱第31圖,本申請實施例提供的一種尋路裝置另一實例結構示意圖,該尋路裝置200包括處理器201、儲存器202和通訊連接埠203。其中,處理器201、儲存器202 和通訊連接埠203之間透過匯流排204相互連接。
處理器201是尋路裝置200的控制中心,利用各種連接埠和線路連接整個尋路裝置各個部分,例如透過匯流排的方式進行連接,透過運行或執行儲存在儲存器202內的軟體程式和/或模組,以及調用儲存在儲存器202內的資料,執行尋路裝置的各種功能和處理資料,可選的,處理器201可包括一個或多個處理單元;優選的,處理器201可為積體應用處理器和調製解調處理器,其中,應用處理器主要處理操作系統、用戶界面和應用程式等,調製解調處理器主要處理無綫通訊。可以理解的是,上述調製解調處理器也可以不結合到處理器201中。
其中,處理器201可以是中央處理器(英文全稱:central processing unit,縮寫:CPU),網路處理器(英文全稱:network processor,縮寫:NP)或者CPU和NP的組合。處理器還可以進一步包括硬體晶片,具體可以是特殊用途積體電路(英文全稱:application-specific integrated circuit,縮寫:ASIC),可編程邏輯器(英文全稱:programmable logic device,縮寫:PLD)或其組合。另外PLD可以是複雜可編程邏輯器件(英文全稱:complex programmable logic device,縮寫:CPLD),現場可編程邏輯門陣列(英文全稱:field-programmable gate array,縮寫:FPGA),通用陣列邏輯(英文全稱:generic array logic,縮寫:GAL)或其任意組合,在本發明實施例中不做任何限定。
儲存器202可以包括揮發性儲存器(英文全稱:volatile memory),例如隨機存取儲存器(英文全稱:random-access memory,縮寫:RAM);儲存器也可以包括非揮發性儲存器(英文全稱:non-volatile memory),例如快閃記憶體(英文全稱:flash memory),硬碟(英文全稱:hard disk drive,縮寫:HDD)或固 態硬碟(英文全稱:solid-state drive,縮寫:SSD);儲存器還可以包括上述種類的儲存器的組合。
匯流排204可以是外設部件互連標準(英文全稱:peripheral component interconnect,縮寫:PCI)匯流排或擴展工業標準結構(英文全稱:extended industry standard architecture,縮寫:EISA)匯流排等。所述匯流排還可以分為地址匯流排、資料匯流排、控制匯流排等。為便於表示,第31圖僅用一條粗綫表示,但並不表示僅有一根匯流排或一種類型的匯流排。
其中,通訊連接埠203用於發送或者接收上述對應方法實施例中所用到的指令或者訊息,例如接收用戶的對遊戲場景地圖中,模擬對象的操作指令,從而本發明實施例中的尋路裝置可以確定出模擬對象尋路的起始點以及目標點。
另外,本發明實施例中的尋路裝置,還可以包括射頻(RF)電路,透過RF電路實現通訊連接埠203的功能更可用於測試訊息的接收和發送,此外,RF電路還可以透過無線通訊與網路和其他設備通訊。上述無綫通訊可以使用任一通訊標準或協議,包括但不限於全球行動通訊系統(英文全稱:Global System of Mobile communication,英文簡稱:GSM)、通用封包無線電服務(英文全稱:General Packet Radio Service,GPRS)、分碼多工(英文全稱:Code Division Multiple Access,英文簡稱:CDMA)、寬頻分碼多工存取(英文全稱:Wideband Code Division Multiple Access,英文簡稱:WCDMA)、長期演進(英文全稱:Long Term Evolution,英文簡稱:LTE)、電子郵件、簡訊服務(英文全稱:Short Messaging Service,英文簡稱:SMS)等。
儲存器202可以儲存程式程式碼205,還可以儲存上述方法實施例中尋路裝置所用到的資料206,例如資料206可以是 上述方法實施例描述到資料,生成的導航網格資料。處理器201可以調用該儲存器中儲存的程式碼205,執行上述方法實施例中對應的步驟,使得最終尋路裝置可以實現上述方法實施例中的行為或功能。
其中,在本發明實施例中,處理器201被配置用於執行以下功能:確定模擬對象的起始點以及目標點;根據起始點以及目標點確定模擬對象在遊戲場景地圖上的尋路路徑;根據尋路路徑的類型對模擬對象採取與類型對應的尋路策略,其中,不同類型的尋路路徑配置有不同的尋路策略。
在一種可能的實現中,遊戲場景地圖被劃分出可行走區域,可行走區域被劃分為至少2個導航網格;處理器201還用於:a.確定目標點是否在第一導航網格內,若目標點在第一導航網格內,則確定尋路路徑為直線尋路路徑,第一導航網格為起始點所在的導航網格;b.若目標點不在第一導航網格內,則確定第一導航網格中是否有可透過邊與目標直線相交,目標直線為起始點到目標點的直線;c.若確定第一導航網格中有可透過邊與目標直線相交,則將第二導航網格作為第一導航網格,第二導航網格為可透過邊相鄰的導航網格;d.重新執行步驟a至c,直至確定第一導航網格中無可透過邊與目標直線相交;e.若確定第一導航網格中無可透過邊與目標直線相 交,則確定尋路路徑不是直線尋路路徑。
在一種可能的實現中,遊戲場景地圖中的至少2導航網格作為導航網格序列,導航網格序列中的導航網格相鄰;根據起始點以及目標點確定模擬對象在遊戲場景地圖上的尋路路徑,還包括:當確定尋路路徑不是直線尋路路徑時,確定第一導航網格與第三導航網格是否在同一導航網格序列中,第三導航網格為目標點所在的導航網格;若是,則確定尋路路徑為管道尋路路徑;若否,則確定尋路路徑不是管道尋路路徑。
在一種可能的實現中,處理器201還用於:當尋路路徑為直綫尋路路徑時,則將起始點以及目標點的直綫連接路徑作為模擬對象的尋路路徑進行尋路;當尋路路徑為管道尋路路徑時,則將起始點與目標點之間的導航網格序列作為模擬對象的尋路路徑進行尋路;當尋路路徑不是直線尋路路徑,並且不是管道尋路路徑時,則根據A星算法計算模擬對象的尋路路徑進行尋路。
在一種可能的實現中,處理器201還用於:將第一導航網格的邊上的中點到目標點的直線距離作為A星算法的估值函數;根據估值函數,透過A星算法計算模擬對象的尋路路徑進行尋路。
資源處理裝置200還包括給各個部件供電的電源207(比如電池),優選的,電源可以透過電源管理系統與處理器201邏輯相連,從而透過電源管理系統實現管理充電、放電、以及功耗管理等功能。
另外,進一步地,本發明實施例中的尋路裝置還包 括輸入單元、觸控面板以及其他的輸入設備,顯示單元等顯示裝置。
需要說明的是,第31圖中示出的尋路裝置系統結構並不構成對本發明實施例中的尋路裝置構成限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置,在此不一一贅述。
本發明實施例中由尋路裝置200所執行的步驟可以基於該第41圖所示的尋路裝置的結構示意圖,具體可以參考前述方法實施例的對應過程,在此不再贅述。
本申請實施例中還提供一種多單位尋路方法及裝置。為了便於理解,首先對各個實施例中所涉及的術語做簡單介紹。
單位:在界面的地圖中可以移動的對象。比如,在遊戲地圖中,單位是指可以移動的怪獸或者人物等等。
嚮導:用於引導至少一個單位移動的對象。通常情况下,嚮導為虛擬的,地圖中並不會展示該嚮導。
在下述各個實施例中,將地圖中的n個單位看作為一個整體(也即單位群組),對單位群組進行尋路,生成沿著目標路徑移動的尋路嚮導,然後控制單位群組中的n個單位跟隨尋路嚮導移動,n為大於等於2的整數,目標路徑為從地圖中的起始點移動至結束點之間的路徑,起始點為根據單位群組中的各個單位的位置確定的位置,結束點為地圖中預設的位置。由於尋路嚮導已經經過一次尋路,因此尋路嚮導在移動過程中並不會碰到障礙物,然而由於n個單位之間以及n個單位與尋路嚮導之間會存在一定距離,因此,在n個單位跟隨尋路嚮導移動的過程中,n個單位中的某個或者某幾個單位可能會碰到障礙物。此時,為了使得單位可 以繞過障礙物,終端可以生成避讓嚮導,並控制單位群組中的單位跟隨避讓嚮導繞過障礙物移動。
上述所說的n個單位為地圖中移動規律一致的各個單位。可選地,該n個單位可以為地圖中的所有單位,也可以為地圖中按照某一規律分佈的部分單位,比如,n個單位為地圖中陣列分佈並陣列移動的單位,本實施例對此並不做限定。
請參考第32圖,其示出了本發明一個實施例提供的多單位尋路方法的方法流程圖,如第32圖所示,該多單位尋路方法可以包括:
步驟S131,對單位群組進行自動尋路,生成沿著地圖中的目標路徑移動的尋路嚮導;單位群組中包括n個單位,n為大於1的整數,所述單位是指在界面的地圖中可以移動的模擬對象,所述尋路嚮導是指用於引導至少一個單位按照計算的尋路路徑移動的對象。
各個單位在地圖中都有一個對應的位置,終端可以根據單位群組中的各個單位的位置來確定尋路嚮導的初始位置,生成從起始點至結束點之間的目標路徑,進而得到從初始位置開始、以預設速度沿著生成的目標路徑移動的尋路嚮導。其中,起始點為生成的初始位置,結束點為系統中預設的位置或者用戶在地圖中自定義的位置,對此並不做限定;預設速度為默認的速度或者用戶自定義的速度,本實施例對此也並不做限定。
終端根據各個單位的位置確定尋路嚮導的初始位置的步驟包括:計算各個單位的位置的加權平均,將得到的加權平均後的位置作為該尋路嚮導的初始位置。比如,請參考第33圖,假設n個單位的位置如圖所示,則終端確定得到的尋路嚮導的位置可以為圖中21所示的位置。當然,實際實現時,終端還可以將各 個單位的位置的重心位置或者垂心位置作為該尋路嚮導的初始位置,本實施例對其計算方式並不做限定。
終端生成從起始點至結束點之間的目標路徑的步驟包括:終端在確定的初始位置的基礎上根據預設尋路算法得到該目標路徑。其中,預設尋路算法為ASTAR(A星)算法或者網格尋路算法,本實施例對此並不做限定。
步驟S132,控制單位群組中的單位跟隨尋路嚮導移動。
n個單位在跟隨尋路嚮導移動的過程中,n個單位的移動速度與尋路嚮導的移動速度相同,且n個單位與尋路嚮導之間的相對位置保持不變。
步驟S133,當單位群組中的單位與障礙物之間的距離小於所述預設距離時,單位群組中的i個單位朝向障礙物的一側移動,並生成i個單位所對應的分散嚮導,控制i個單位與分散嚮導的相對距離不變,i為小於等於n的整數。
分散嚮導是指用於引導i個單位繞過碰撞的障礙物的嚮導。
障礙物是指設置在地圖中的用於阻礙單位的移動的對象。實際實現時,該障礙物可以是位置靜態不動的對象,比如,障礙物可以為山、河流、建築物或者其它任何位置靜態不動的對象;也可以是位置可以動態變化的對象,比如,障礙物可以為單位前進圖中的怪獸、敵軍等等。並且,地圖中的障礙物可以有一個,也可以有至少兩個,本實施例對此並不做限定。
本實施例中,單位群組中的單位與障礙物之間的距離小於預設距離是指單位群組中的任一單位與障礙物之間的距離小於預設距離。其中,預設距離可以為系統中預先設定的距離, 也可以為用戶自定義的數值,並且通常情况下,該預設距離為數值較小的數值,比如可以為0。下述除特殊說明外,均以預設距離為0也即發生碰撞來舉例說明。
單位群組中的單位在與障礙物碰撞之後的移動方向,與單位與障礙物碰撞的角度有關。可選地,單位與障礙物碰撞之後,朝向單位與障礙物的切綫方向移動。比如,請參考第34圖,假設單位群組中與障礙物碰撞的兩個單位與障礙物的碰撞位置如圖所示,則其中單位31朝向障礙物32的上側34移動,而單位33朝向障礙物32的下側35移動。
障礙物的一側是指單位群組碰撞的所有障礙物的一側。比如,若單位群組碰撞的障礙物為一個,則障礙物的一側即為該一個障礙物的某一側;而若單位群組碰撞的障礙物為至少兩個,則障礙物的一側即為該至少兩個障礙物的一側,也即將該至少兩個障礙物作為一個整體,障礙物的一側為該整體的一側。
實際實現時,根據實際的碰撞場景,可能會包括如下幾種情况。
第一種,只包括朝向障礙物一側移動的單位。比如,請參考第35圖,其示出了一種可能的碰撞示意圖。如第35圖中的(1)圖所示,在單位群組中的單位與障礙物碰撞之後,單位群組中的所有單位朝向障礙物的上側移動。其中,第35圖中的各圖均以填充的為障礙物,未填充的為單位為例。
第二種,同時包括朝向障礙物兩側移動的單位。其中,朝向障礙物兩側移動的單位的個數可以相同或者不同,本實施例對此並不做限定。比如,請參考第36圖,其示出了另一種可能的碰撞示意圖。如第35圖中的(2)圖所示,假設單位群組中的單位有4個,則在與障礙物碰撞之後,其中2個單位向障礙物的上 側移動,3個單位向障礙物的下側移動。
第三種,只包括朝向兩個障礙物中間移動的單位。比如,請參考第35圖中的(3)圖,其示出了一種可能的碰撞示意圖。
第四種,同時包括朝向障礙物一側移動的單位以及朝向障礙物中間移動的單位。請參考第35圖中的(4)圖,其示出了此時的一種可能的碰撞示意圖。
第五種,同時包括朝向障礙物兩側移動的單位以及朝向障礙物中間移動的單位。請參考第35圖中的(5)圖,其示出了此時的一種可能的碰撞示意圖。
當然實際實現時,依據障礙物的分佈,朝向障礙物中間移動的單位中,可以包括朝向兩個單位的中間移動的單位,也可以同時包括朝向3個障礙物中每兩個障礙物中間移動的單位,比如,請參考第36圖,其示出了一種可能的碰撞示意圖。
基於上述碰撞場景,分散嚮導可以有一個,也可以有兩個。比如,在上述第一種和第四種場景中,分散嚮導有一個,而在第二種和第五種場景中,分散嚮導有兩個,本實施例對分散嚮導的個數並不做限定。
i個單位在跟隨分散嚮導移動的過程中,保持與分散嚮導的相對位置不變。
步驟S134,當單位群組中的單位與障礙物之間的距離小於預設距離時,單位群組中的j個單位朝向障礙物中的兩個障礙物的中間移動,並生成j個單位所對應的聚攏嚮導,控制j個單位跟隨聚攏嚮導向兩個障礙物的中間聚攏,j為小於等於n的正整數。
聚攏嚮導是指用於引導j個單位朝向碰撞的兩個障礙物的中間聚攏的嚮導,該聚攏嚮導跟隨尋路移動。
終端可以將j個單位進行部分交疊,進而使得交疊後的j個單位可以向兩個障礙物的中間聚攏。可選地,若j個單位中相鄰兩個單位之間存在間隙,則終端還可以去除間隙,進而使得j個單位向兩個障礙物的中間聚攏,實際實現時,若去除間隙之後,j個單位仍然無法從兩個障礙物的中間聚攏,則終端可以對j個單位進行部分交疊,本實施例對此並不做限定。本實施例採用交疊的方式來使得j個單位向兩個障礙物的中間聚攏,保證了各個單位的正常顯示。實際實現時,終端還可以對j個單位進行等比縮小,本實施例對此並不做限定。
綜上所述,本實施例提供的多單位尋路方法,透過將n個單位作為一個單位群組,生成該單位群組的尋路嚮導,控制單位群組中的單位跟隨尋路嚮導移動,並在單位群組中的單位與地圖中的障礙物之間的距離小於預設距離時,生成避讓嚮導,控制單位群組中的單位跟隨避讓嚮導繞過障礙物移動;也即透過將多個單位作為一個整體進行自動尋路,進而只有在與障礙物之間的距離較小時生成避讓嚮導,解决了相關技術中分別對每個單位進行尋路時,尋路效率較低的問題;達到了可以提高尋路效率的效果在步驟S133中,生成i個單位所對應的分散嚮導的步驟可以包括:a.根據i個單位的位置確定分散嚮導的第一位置。
比如,結合第37圖圖,終端可以根據朝向障礙物的上側移動的單位61和62的位置確定得到分散嚮導66的第一位置,根據朝向障礙物的下側移動的單位63、64和65的位置確定得到分散嚮導67的第一位置。
本步驟中確定第一位置的確定方式與上述實施例中 步驟S131中確定尋路嚮導的位置的確定方式類似,在此不再贅述。
第二,生成初始位置為第一位置且按照預設移動方式移動的分散嚮導,預設移動方式包括以障礙物為中心、目標數值為半徑且單位時間段內在預設方向上移動的距離為預設距離,目標數值為第一位置與碰撞的障礙物之間的距離,預設方向為尋路嚮導的移動方向,預設距離為尋路嚮導在單位時間段內在預設方向上移動的距離。
終端確定得到分散嚮導的第一位置之後,終端可以計算該第一位置與該分散嚮導所對應的i個單位所碰撞的障礙物之間的距離,將該距離作為目標數值R。
為了保證各個單位可以與尋路嚮導同步向前移動,分散嚮導在在單位時間段內在尋路嚮導的移動方向上移動的距離S與尋路嚮導在移動方向上移動的距離S相同,也即分散嚮導在尋路嚮導的移動方向上的移動速度與尋路嚮導的移動速度相同。比如,請參考第38圖,分散嚮導可以按照圖中所示的移動方式移動。
由於分散嚮導在單位時間段內在預設方向上移動的距離與尋路嚮導在預設方向上移動的距離相同,因此,單位群組中的各個單位可以同時到達結束點。
在步驟S134中,生成j個單位所對應的聚攏嚮導的步驟可以包括:a.根據j個單位的位置確定聚攏嚮導的第二位置。
本步驟與上述實施例中確定尋路嚮導的位置的步驟類似,在此不再贅述。並且,在本實施例中,若j=n,也即單位群組中的所有單位均向兩個障礙物中間移動,則此時,確定得到的第二位置與單位群組中的單位與障礙物碰撞時尋路嚮導所處的位置重合,本實施例在此不再贅述。
第二,生成初始位置為第二位置且跟隨尋路嚮導移動的聚攏嚮導。
聚攏嚮導的移動速度與尋路嚮導的移動速度一致,對此並不做限定。
相應的,步驟S134中,控制j個單位跟隨聚攏嚮導向兩個障礙物的中間聚攏的步驟可以包括:a.對於j個單位中的每個單位,根據各單位的位置以及各單位在目標連線上的投影位置分別確定各單位的移動軌跡,目標連線為兩個障礙物的連線。
單位在目標連線上的投影位置是指j個單位在交疊且移動至目標連線後在目標連線中的位置。在本實施例中,j個單位同時移動至目標連線處。
可選地,終端確定單位在目標連線上的投影位置的步驟包括:終端計算目標連綫的總長度,根據總長度、j個單位中每個單位的大小以及相鄰兩個單位之間的距離計算j個單位同分時布在目標連綫中時每個單位的位置。比如,j=4假設總長度為10、單位的直徑為5且相鄰兩個單位之間的距離為0,則4個單位在到達目標連線後,其兩兩交疊2/3,比如,請參考第39圖,其示出了一種可能的分佈方式。
在確定得到各個單位在目標連綫中的位置之後,終端可以將單位的位置以及確定得到的該單位在目標連綫上的投影位置的連綫作為移動軌跡,如第39圖,其示出了確定得到的移動軌跡的示意圖。
需要說明的是,上述僅以j個單位在到達目標連線之後,分佈在整個目標連線上為例,可選地,j個單位還可以只佔據目標連線中的部分位置,本實施例對此並不做限定。
第二,分別控制j個單位沿著移動軌跡移動。
可選地,本步驟可以包括:
(1)、計算聚攏嚮導移動至聚攏嚮導的過程中,所述j個單位各自在目標連線上的投影位置時所需的時間。
可選地,聚攏嚮導在目標連線上的投影位置是指聚攏嚮導跟隨尋路嚮導移動後在移動至目標連線時所處的位置。實際實現時,該投影位置可以為目標連線的中心位置,本實施例對此並不做限定。
可選地,終端可以計算第二位置與投影位置之間的距離,計算該距離與預設速度的比值,將計算得到的比值作為該時間。其中,預設速度是指尋路嚮導移動的速度。
(2)、根據移動軌跡的長度以及時間確定單位的移動速度。
計算移動軌跡的長度與確定的時間的比值,將該比值作為該單位的移動速度。其中,由於不同單位所對應的移動軌跡的長度可能不同,而確定得到的時間相同,因此確定得到的不同單位的移動速度可能不同。
(3)、控制單位以移動速度沿著移動軌跡移動。
由於j個單位中的每個單位按照上述確定的速度跟隨聚攏嚮導移動,聚攏嚮導跟隨尋路嚮導移動,因此,各個單位可以同時到達結束點。
在上述各個實施例中,在單位群組跟隨避讓嚮導繞過障礙物之後,單位群組中的各個單位恢復至跟隨避讓嚮導之前的分佈並跟隨尋路嚮導繼續移動。
本實施例所說的單位群組跟隨避讓嚮導繞過障礙物是指,單位群組中的單位繞過障礙物且避讓嚮導的前進方向與尋 路嚮導的前進方向一致。比如,在分散嚮導帶領i個單位繞過障礙物之後,i個單位可以繼續跟隨尋路嚮導移動。又比如,在j個單位跟隨聚攏嚮導到達目標連線之後,j個單位可以恢復至聚攏前的陣形並繼續跟隨尋路嚮導移動。
請參考第40圖,其示出了本發明一個實施例提供的多單位尋路裝置的結構示意圖,如第40圖所示,該多單位尋路裝置可以包括:生成模組9100、控制模組9200和移動模組9300。
生成模組9100,用於對單位群組進行自動尋路,生成沿著地圖中的目標路徑移動的尋路嚮導;所述單位群組中包括n個單位,n為大於1的整數,所述單位是指在界面的地圖中可以移動的模擬對象,所述尋路嚮導是指用於引導至少一個單位按照計算的尋路路徑移動的對象,所述尋路嚮導用於確定地圖中從起始點至結束點之間的移動路徑;控制模組9200,用於控制所述單位群組中的單位跟隨所述尋路嚮導移動;移動模組9300,用於當所述單位群組中的單位與所述地圖中的障礙物之間的距離小於預設距離時,生成避讓嚮導,控制所述單位群組中的單位跟隨所述避讓嚮導繞過所述障礙物移動。
綜上所述,本實施例提供的多單位尋路裝置,透過將n個單位作為一個單位群組,生成該單位群組的尋路嚮導,控制單位群組中的單位跟隨尋路嚮導移動,並在單位群組中的單位與地圖中的障礙物之間的距離小於預設距離時,生成避讓嚮導,控制單位群組中的單位跟隨避讓嚮導繞過障礙物移動;也即透過將多個單位作為一個整體進行自動尋路,進而只有在與障礙物之間的距離較小時生成避讓嚮導,解决了相關技術中分別對每個單位 進行尋路時,尋路效率較低的問題;達到了可以提高尋路效率的效果基於上述實施例提供的多單位尋路裝置,可選的,所述移動模組9300,還用於:當所述單位群組中的單位與所述障礙物之間的距離小於所述預設距離時,所述單位群組中的i個單位朝向所述障礙物的一側移動,並生成所述i個單位所對應的分散嚮導,控制所述i個單位與所述分散嚮導的相對距離不變,i為小於等於n的整數;當所述單位群組中的單位與所述障礙物之間的距離小於所述預設距離時,所述單位群組中的j個單位朝向所述障礙物中的兩個障礙物的中間移動,並生成所述j個單位所對應的聚攏嚮導,控制所述j個單位跟隨所述聚攏嚮導向所述兩個障礙物的中間聚攏,j為小於等於n的正整數。
可選的,所述移動模組9300,還用於:根據所述i個單位的位置確定所述分散嚮導的第一位置;生成初始位置為所述第一位置且按照預設移動方式移動的所述分散嚮導,所述預設移動方式包括以所述障礙物為中心、目標數值為半徑且單位時間段內在預設方向上移動的距離為預設距離,所述目標數值為所述第一位置與碰撞的障礙物之間的距離,所述預設方向為所述尋路嚮導的移動方向,所述預設距離為所述尋路嚮導在所述單位時間段內在所述預設方向上移動的距離。
可選的,所述移動模組9300,還用於:根據所述j個單位的位置確定所述聚攏嚮導的第二位置; 生成初始位置為所述第二位置且跟隨所述尋路嚮導移動的所述聚攏嚮導。
可選的,所述移動模組9300,還用於:對於所述j個單位中的每個單位,根據各單位的位置以及各單位在目標連線上的投影位置分別確定各單位的移動軌跡,所述目標連線為所述兩個障礙物的連線;分別控制所述j個單位沿著所述移動軌跡移動。
可選的,所述移動模組9300,還用於:計算所述聚攏嚮導移動至所述聚攏嚮導的過程中,所述j個單位各自在所述目標連線上的投影位置時所需的時間;根據所述移動軌跡的長度以及所述時間確定所述單位的移動速度;分別控制所述j個單位以所述移動速度沿著所述移動軌跡移動。
可選的,所述裝置還包括:恢復模組,用於在所述單位群組跟隨所述避讓嚮導繞過所述障礙物之後,所述單位群組中的各個單位恢復至跟隨所述避讓嚮導之前的分佈並跟隨所述尋路嚮導繼續移動。
需要說明的是:上述實施例提供的多單位尋路裝置,僅以上述各功能模組的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模組完成,即將伺服器的內部結構劃分成不同的功能模組,以完成以上描述的全部或者部分功能。另外,上述實施例提供的多單位尋路裝置和多單位尋路方法實施例屬於同一構思,其具體實現過程詳見方法實施例,這裏不再贅述。
本發明實施例還提供了一種計算機可讀儲存介質, 該計算機可讀儲存介質可以是儲存器中所包含的計算機可讀儲存介質;也可以是單獨存在,未裝配入終端中的計算機可讀儲存介質。該計算機可讀儲存介質儲存有一個或者一個以上程式,該一個或者一個以上程式被一個或者一個以上的處理器用來執行上述多單位尋路方法。
第41圖其示出了本發明一個實施例提供的終端1000的方塊圖,該終端可以包括射頻(RF,Radio Frequency)電路1001、包括有一個或一個以上計算機可讀儲存介質的儲存器1002、輸入單元1003、顯示單元1004、傳感器1005、音頻電路1006、無線保真(Wi-Fi,Wireless-Fidelity)模組1007、包括有一個或者一個以上處理核心的處理器1008、以及電源1009等部件。所屬技術領域具有通常知識者可以理解,第41圖中示出的終端結構並不構成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:RF電路1010可用於收發訊息或通話過程中,訊號的接收和發送,特別地,將基地台的下行訊息接收後,給處理器1080處理;另外,將設計上行的資料發送給基地台。通常,RF電路1010包括但不限於天綫、至少一個放大器、收發信機、耦合器、低噪聲放大器(英文全稱:Low Noise Amplifier,英文簡稱:LNA)、雙工器等。此外,RF電路1010還可以透過無線通訊與網路和其他設備通訊。上述無綫通訊可以使用任一通訊標準或協議,包括但不限於全球行動通訊系統(英文全稱:Global System of Mobile communication,英文簡稱:GSM)、通用封包無線電服務(英文全稱:General Packet Radio Service,GPRS)、分碼多工(英文全稱:Code Division Multiple Access,英文簡稱:CDMA)、寬頻分碼多工存取(英文全稱:Wideband Code Division Multiple Access,英 文簡稱:WCDMA)、長期演進(英文全稱:Long Term Evolution,英文簡稱:LTE)、電子郵件、簡訊服務(英文全稱:Short Messaging Service,英文簡稱:SMS)等。
儲存器1020可用於儲存軟體程式以及模組,處理器1080透過運行儲存在儲存器1020的軟體程式以及模組,從而執行手機的各種功能應用以及資料處理。儲存器1020可主要包括儲存程式區和儲存資料區,其中,儲存程式區可儲存操作系統、至少一個功能所需的應用程式(比如聲音播放功能、圖像播放功能等)等;儲存資料區可儲存根據手機的使用所創建的資料(比如音頻資料、電話簿等)等。此外,儲存器1020可以包括高速隨機存取儲存器,還可以包括非揮發性儲存器,例如至少一個磁盤儲存器件、記憶體器件、或其他揮發性固態儲存器件。相應地,儲存器1002還可以包括儲存器控制器,以提供處理器1008和輸入單元1003對儲存器1002的訪問。
輸入單元1003可用於接收輸入的數位或字符訊息,以及產生與用戶設置以及功能控制有關的鍵盤、滑鼠、操作桿、光學或者軌跡球訊號輸入。具體地,在一個具體的實施例中,輸入單元1003可包括觸敏表面以及其他輸入設備。觸敏表面,也稱為觸控面板或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面上或在觸敏表面附近的操作),並根據預先設定的程式驅動相應的連接裝置。可選的,觸敏表面可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的訊號,將訊號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸訊息,并將它轉換成觸點坐標,再送給處理器1008,並能接收處理器1008發來的命令並加以執行。此外,可以 采用電阻式、電容式、紅外綫以及表面聲波等多種類型實現觸敏表面。除了觸敏表面,輸入單元1003還可以包括其他輸入設備。具體地,其他輸入設備可以包括但不限於物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌述球、滑鼠、操作杆等中的一種或多種。
顯示單元1004可用於顯示由用戶輸入的訊息或提供給用戶的訊息以及終端的各種圖形用戶介面,這些圖形用戶介面可以由圖形、文字、圖示、視頻和其任意組合來構成。顯示單元1004可包括顯示面板,可選的,可以採用液晶顯示器(英文全稱:Liquid Crystal Display,英文簡稱:LCD)、有機發光二極體(英文全稱:Organic Light-Emitting Diode,英文簡稱:OLED)顯示器等形式來配置顯示面板。進一步的,觸敏表面可覆蓋顯示面板,當觸敏表面檢測到在其上或附近的觸摸操作後,傳送給處理器1008以確定觸摸事件的類型,隨後處理器1008根據觸摸事件的類型在顯示面板上提供相應的視覺輸出。雖然在第41圖中,觸敏表面與顯示面板是作為兩個獨立的部件來實現輸入和輸入功能,但是在某些實施例中,可以將觸敏表面與顯示面板結合而實現輸入和輸出功能。
還可包括至少一種傳感器1005,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環境光傳感器及接近傳感器,其中,環境光傳感器可根據環境光綫的明暗來調節顯示面板的亮度,接近傳感器可在手機移動到耳邊時,關閉顯示面板和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用於識別手機姿態的應用(比如橫竪螢幕切換、相關游戲、磁力計姿態校準)、振動識別相關功能(比如 計步器、敲擊)等;至於終端還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路1006、揚聲器、傳聲器可提供用戶與終端之間的音頻連接埠。音頻電路1006可將接收到的音頻資料轉換後的電訊號,傳輸到揚聲器,由揚聲器轉換為聲音訊號輸出;另一方面,傳聲器將收集的聲音訊號轉換為電訊號,由音頻電路1006接收後轉換為音頻資料,再將音頻資料輸出處理器1008處理後,經RF電路1001以發送給比如另一終端,或者將音頻資料輸出至儲存器1002以便進一步處理。音頻電路1006還可能包括耳塞插孔,以提供外設耳機與終端的通訊。
Wi-Fi屬於短距離無線傳輸技術,終端透過Wi-Fi模組1007可以幫助用戶收發電子郵件、瀏覽網頁和訪問串流媒體等,它為用戶提供了無綫的寬頻網際網路訪問。雖然第41圖示出了Wi-Fi模組1007,但是可以理解的是,其並不屬於手機的必須構成,完全可以根據需要在不改變發明的本質的範圍內而省略。
處理器1008是終端的控制中心,利用各種連接埠和綫路連接整個手機的各個部分,透過運行或執行儲存在儲存器1002內的軟體程式和/或模組,以及調用儲存在儲存器1002內的資料,執行手機的各種功能和處理資料,從而對手機進行整體監控。可選的,處理器1008可包括一個或多個處理單元;優選的,處理器1008可結合應用處理器和調製解調處理器,其中,應用處理器主要處理操作系統、用戶界面和應用程式等,調製解調處理器主要處理無線通訊。可以理解的是,上述調製解調處理器也可以不結合到處理器1008中。
終端還包括給各個部件供電的電源1009(比如電池),優選的,電源可以透過電源管理系統與處理器1008邏輯相 連,從而透過電源管理系統實現管理充電、放電、以及功耗管理等功能。電源1009還可以包括一個或一個以上的直流或交流電源、再充電系統、電源故障檢測電路、電源轉換器或者逆變器、電源狀態指示器等任意組件。
儘管未示出,終端還可以包括攝影鏡頭、藍牙模組等,在此不再贅述。具體在本實施例中,終端中的處理器1008會運行儲存在儲存器1002中的一個或一個以上的程式指令,從而實現上述各個方法實施例中所提供的終端。
應當理解的是,在本文中使用的,除非上下文清楚地支持例外情况,單數形式“一個”(“a”、“an”、“the”)旨在也包括複數形式。還應當理解的是,在本文中使用的“和/或”是指包括一個或者一個以上相關聯地列出的項目的任意和所有可能組合。
所屬領域具有通常知識者可以清楚地瞭解到,為描述的方便和簡潔,上述描述的系統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以透過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以結合到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是透過一些連接埠、裝置或單元的間接耦合或通訊連接,可以是電性、機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元 上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以結合在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元結合在一個單元中。上述結合的單元既可以采用硬體的形式實現,也可以采用軟體功能單元的形式實現。
所述結合的單元如果以軟體功能單元的形式實現并作為獨立的產品銷售或使用時,可以儲存在一個計算機可讀取儲存介質中。基於這樣的理解,本發明的技術方案本質上或者說對習知技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該計算機軟體產品儲存在一個儲存介質中,包括複數個指令用以使得一台計算機設備(可以是個人電腦,伺服器,或者網路設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的儲存介質包括:隨身碟、可攜式硬碟、唯讀儲存器(ROM,Read-Only Memory)、隨機存取儲存器(RAM,Random Access Memory)、磁碟或者光碟等各種可以儲存程式程式碼的介質。
以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,所屬技術領域具有通常知識者應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。

Claims (16)

  1. 一種控制模擬對象尋路的方法,包括:當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;根據所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;若存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動;及若不存在所述第一尋路路徑,則確定與所述移動路徑匹配的第二尋路路徑,其中在所述確定與所述移動路徑匹配的第二尋路路徑,包括:獲取所述第一模擬對象當前的第一位置以及所述第二模擬對象當前的第二位置;根據所述第一位置與所述第二位置確定所述第二模擬對象的第一目標移動位置,所述第一目標移動位置與所述第一位置之間的距離小於預置閾值;及根據所述第二位置與所述第一目標移動位置構成所述第二尋路路徑。
  2. 根據申請專利範圍第1項所述之方法,其中在所述確定與所述移動路徑匹配的第二尋路路徑之後,所述方法還包括:獲取所述第二尋路路徑的開銷資料,所述開銷資料用於表示計算資源當前的使用量,所述計算資源是指伺服器中用於計算尋路路徑的資源;判斷所述開銷資料是否大於目標開銷閾值;若所述開銷資料大於所述目標開銷閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;及若所述開銷資料不大於所述目標開銷閾值,則根據所述開銷資料更新歷史開銷資料。
  3. 根據申請專利範圍第1項所述之方法,其中在所述確定與所述移動路徑匹配的第二尋路路徑之後,所述方法還包括:獲取所述第二尋路路徑的熱度資料,所述第二尋路路徑的熱度資料用於表示所述第二尋路路徑的使用頻率;判斷所述第二尋路路徑的熱度資料是否大於目標熱度閾值;若所述第二尋路路徑的熱度資料大於所述目標熱度閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;及若所述第二尋路路徑的熱度資料不大於所述目標熱度閾值,則根據所述第二尋路路徑的熱度資料更新歷史熱度資料,所述歷史熱度資料用於更新所述目標熱度閾值。
  4. 根據申請專利範圍第1項所述之方法,其中在所述根據所述第一位置確定所述第二模擬對象的目標移動位置之後,所述方法還包括:當所述第一模擬對象發生移動時,獲取所述第一模擬對象當前的第三位置以及所述第二模擬對象當前的第四位置;根據所述第三位置與所述第四位置確定所述第二模擬對象的第二目標移動位置,所述第二目標移動位置與所述第三位置之間的距離小於預置閾值;及根據所述第二當前位置與所述第一目標移動位置更新所述第二尋路路徑。
  5. 根據申請專利範圍第1或4所述之方法,還包括:分別將所述第二位置、所述第一目標移動位置以及所述第二目標移動位置依次儲存於路徑堆棧;及檢測從所述第二位置到所述第二目標移動位置之間是否滿足直線移動條件,若是,則從所述路徑堆棧中清除所述第一目標移動位置。
  6. 根據申請專利範圍第5項所述之方法,其中在所述控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動之後,所述方法還包括:若所述第二模擬對象的移動位置滿足尋路返回條件,則根據所述路徑堆棧中的位置點構建第三尋路路徑,所述第三尋路路徑用於所述第二模擬對象返回至初始位置。
  7. 一種伺服器,包括:第一獲取模組,用於當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;第一檢測模組,用於根據所述第一獲取模組獲取的所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;控制模組,用於若所述第一檢測模組檢測到存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動;及確定模組,用於所述第一檢測模組檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑之後,若不存在所述第一尋路路徑,則確定與所述移動路徑匹配的第二尋路路徑,其中所述確定模組包括:第一獲取單元,用於獲取所述第一模擬對象當前的第一位置以及所述第二模擬對象當前的第二位置;及第一確定單元,用於根據所述第一獲取單元獲取的所述第一位置與所述第二位置確定所述第二模擬對象的第一目標移動位置,所述第一目標移動位置與所述第一位置之間的距離小於預置閾值,所述第二位置與所述第一目標移動位置構成所述第二尋路路徑。
  8. 根據申請專利範圍第7項所述之伺服器,還包括:第二獲取模組,用於所述確定模組確定與所述移動路徑匹配的第二尋路路徑之後,獲取所述第二尋路路徑的開銷資料,所述開銷資料用於表示計算資源當前的使用量,所述計算資源是指伺服器中用於計算尋路路徑的資源;第一判斷模組,用於判斷所述第二獲取模組獲取的所述開銷資料是否大於目標開銷閾值;第一加入模組,用於若所述第一判斷模組判斷得到所述開銷資料大於所述目標開銷閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;及第一更新模組,用於若所述第一判斷模組判斷得到所述開銷資料不大於所述目標開銷閾值,則根據所述開銷資料更新歷史開銷資料,所述歷史開銷資料用於更新所述目標開銷閾值。
  9. 根據申請專利範圍第7項所述之伺服器,還包括:第三獲取模組,用於所述確定模組確定與所述移動路徑匹配的第二尋路路徑之後,獲取所述第二尋路路徑的熱度資料,所述第二尋路路徑的熱度資料用於表示第二尋路路徑的使用頻率;第二判斷模組,用於判斷所述第三獲取模組獲取的所述第二尋路路徑的熱度資料是否大於目標熱度閾值;第二加入模組,用於若所述第二判斷模組判斷得到所述第二尋路路徑的熱度資料大於所述目標熱度閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;及第二更新模組,用於若所述第二判斷模組判斷得到所述第二尋路路徑的熱度資料不大於所述目標熱度閾值,則根據所述第二尋路路徑的熱度資料更新歷史熱度資料,所述歷史熱度資料用於更新所述目標熱度閾值。
  10. 根據申請專利範圍第7項所述之伺服器,其中所述確定模組還包括:第二獲取單元,用於所述第一確定單元根據所述第一位置確定所述第二模擬對象的目標移動位置之後,當所述第一模擬對象發生移動時,獲取所述第一模擬對象的第三位置以及所述第二模擬對象的第四位置;及第二確定單元,用於根據所述第二獲取單元獲取的所述第三位置與所述第四位置確定所述第二模擬對象的第二目標移動位置,所述第二目標移動位置與所述第三位置之間的距離小於預置閾值;其中所述第二更新模組用於根據所述第二位置與所述第一目標移動位置更新所述第二尋路路徑。
  11. 根據申請專利範圍第7或10項所述之伺服器,還包括:儲存模組,用於分別將所述第二位置、所述第一目標移動位置以及所述第二目標移動位置依次儲存於路徑堆棧;及第二檢測模組,用於檢測從所述第二位置到所述第二目標移動位置之間是否滿足直綫移動條件,若是,則從所述儲存模組儲存的所述路徑堆棧中清除所述第一目標移動位置。
  12. 根據申請專利範圍第11項所述之伺服器,還包括:構建模組,用於所述控制模組控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動之後,若所述第二模擬對象的移動位置滿足尋路返回條件,則根據所述路徑堆棧中的位置點構建第三尋路路徑,所述第三尋路路徑用於所述第二模擬對象返回至初始位置。
  13. 一種控制模擬對象尋路的方法,包括:當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;根據所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;若存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動;及若不存在所述第一尋路路徑,則確定與所述移動路徑匹配的第二尋路路徑,其中在所述確定與所述移動路徑匹配的第二尋路路徑之後,所述方法還包括:獲取所述第二尋路路徑的開銷資料,所述開銷資料用於表示計算資源當前的使用量,所述計算資源是指伺服器中用於計算尋路路徑的資源;判斷所述開銷資料是否大於目標開銷閾值;若所述開銷資料大於所述目標開銷閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;及若所述開銷資料不大於所述目標開銷閾值,則根據所述開銷資料更新歷史開銷資料。
  14. 一種控制模擬對象尋路的方法,包括:當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;根據所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;若存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動;及若不存在所述第一尋路路徑,則確定與所述移動路徑匹配的第二尋路路徑,其中在所述確定與所述移動路徑匹配的第二尋路路徑之後,所述方法還包括:獲取所述第二尋路路徑的熱度資料,所述第二尋路路徑的熱度資料用於表示所述第二尋路路徑的使用頻率;判斷所述第二尋路路徑的熱度資料是否大於目標熱度閾值;若所述第二尋路路徑的熱度資料大於所述目標熱度閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;及若所述第二尋路路徑的熱度資料不大於所述目標熱度閾值,則根據所述第二尋路路徑的熱度資料更新歷史熱度資料,所述歷史熱度資料用於更新所述目標熱度閾值。
  15. 一種伺服器,包括:第一獲取模組,用於當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;第一檢測模組,用於根據所述第一獲取模組獲取的所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;控制模組,用於若所述第一檢測模組檢測到存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動;確定模組,用於所述第一檢測模組檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑之後,若不存在所述第一尋路路徑,則確定與所述移動路徑匹配的第二尋路路徑;第二獲取模組,用於所述確定模組確定與所述移動路徑匹配的第二尋路路徑之後,獲取所述第二尋路路徑的開銷資料,所述開銷資料用於表示計算資源當前的使用量,所述計算資源是指伺服器中用於計算尋路路徑的資源;第一判斷模組,用於判斷所述第二獲取模組獲取的所述開銷資料是否大於目標開銷閾值;第一加入模組,用於若所述第一判斷模組判斷得到所述開銷資料大於所述目標開銷閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;及第一更新模組,用於若所述第一判斷模組判斷得到所述開銷資料不大於所述目標開銷閾值,則根據所述開銷資料更新歷史開銷資料,所述歷史開銷資料用於更新所述目標開銷閾值。
  16. 一種伺服器,包括:第一獲取模組,用於當接收到第一模擬對象觸發的交互指令時,獲取所述第一模擬對象的移動路徑;第一檢測模組,用於根據所述第一獲取模組獲取的所述第一模擬對象的移動路徑,檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑;控制模組,用於若所述第一檢測模組檢測到存在所述第一尋路路徑,則控制第二模擬對象按照所述第一尋路路徑向所述第一模擬對象移動;確定模組,用於所述第一檢測模組檢測預置路徑訊息集合中是否存在與所述移動路徑匹配的第一尋路路徑之後,若不存在所述第一尋路路徑,則確定與所述移動路徑匹配的第二尋路路徑;第三獲取模組,用於所述確定模組確定與所述移動路徑匹配的第二尋路路徑之後,獲取所述第二尋路路徑的熱度資料,所述第二尋路路徑的熱度資料用於表示第二尋路路徑的使用頻率;第二判斷模組,用於判斷所述第三獲取模組獲取的所述第二尋路路徑的熱度資料是否大於目標熱度閾值;第二加入模組,用於若所述第二判斷模組判斷得到所述第二尋路路徑的熱度資料大於所述目標熱度閾值,則將所述第二尋路路徑加入至所述預置路徑訊息集合中;及第二更新模組,用於若所述第二判斷模組判斷得到所述第二尋路路徑的熱度資料不大於所述目標熱度閾值,則根據所述第二尋路路徑的熱度資料更新歷史熱度資料,所述歷史熱度資料用於更新所述目標熱度閾值。
TW107101326A 2017-01-13 2018-01-12 控制模擬對象尋路的方法、裝置及伺服器 TWI664836B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
??201710026166.4 2017-01-13
CN201710026166.4A CN106790224B (zh) 2017-01-13 2017-01-13 一种控制模拟对象寻路的方法及服务器
CN201710060211.8A CN106814966B (zh) 2017-01-24 2017-01-24 一种控制对象的方法及装置
??201710060211.8 2017-01-24
CN201710184204.9A CN106964156B (zh) 2017-03-24 2017-03-24 一种寻路方法以及装置
??201710184204.9 2017-03-24
CN201710288007.1A CN107185242B (zh) 2017-04-27 2017-04-27 多单位寻路方法及装置
??201710288007.1 2017-04-27

Publications (2)

Publication Number Publication Date
TW201826755A TW201826755A (zh) 2018-07-16
TWI664836B true TWI664836B (zh) 2019-07-01

Family

ID=62839633

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107101326A TWI664836B (zh) 2017-01-13 2018-01-12 控制模擬對象尋路的方法、裝置及伺服器

Country Status (2)

Country Link
TW (1) TWI664836B (zh)
WO (1) WO2018130135A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109612457A (zh) * 2018-12-29 2019-04-12 咪咕互动娱乐有限公司 一种运动路线确定方法、服务器及存储介质
CN110772791B (zh) * 2019-11-05 2023-07-21 网易(杭州)网络有限公司 三维游戏场景的路线生成方法、装置和存储介质
CN110917624B (zh) * 2019-12-06 2024-01-23 珠海海鸟科技有限公司 路径确定方法、装置及设备
CN111035930B (zh) * 2019-12-06 2024-04-19 珠海海鸟科技有限公司 地图数据处理方法及装置
CN111158829A (zh) * 2019-12-30 2020-05-15 北京金山安全软件有限公司 操作回退处理方法和装置
CN111202985B (zh) * 2020-01-16 2023-04-07 网易(杭州)网络有限公司 2d游戏中的路径规划方法、系统及电子设备
CN111481931B (zh) * 2020-04-13 2023-07-25 网易(杭州)网络有限公司 游戏中虚拟对象的寻路控制方法、电子设备及存储介质
CN111840998A (zh) * 2020-06-30 2020-10-30 完美世界(北京)软件科技发展有限公司 操作控制方法和装置、存储介质和电子装置
CN111773687A (zh) * 2020-06-30 2020-10-16 完美世界(北京)软件科技发展有限公司 地图寻路方法和装置、存储介质和电子装置
CN112023401A (zh) * 2020-09-11 2020-12-04 北京冰封互娱科技有限公司 寻路恢复的处理方法、装置及电子设备
TWI819289B (zh) * 2021-03-30 2023-10-21 財團法人工業技術研究院 分散式協作運算方法及系統
CN113730915B (zh) * 2021-09-16 2023-08-25 腾讯科技(深圳)有限公司 目标路径的确定方法、装置和存储介质及电子设备
CN116617669B (zh) * 2023-05-23 2024-06-04 广州盈风网络科技有限公司 一种碰撞测试及其检测方法、设备与存储介质
CN117942559A (zh) * 2023-12-29 2024-04-30 一点灵犀信息技术(广州)有限公司 对战游戏的信息处理方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940948A (zh) * 2005-09-30 2007-04-04 腾讯科技(深圳)有限公司 在二维游戏场景中实现跟随的方法及装置
CN103893969A (zh) * 2014-04-15 2014-07-02 广州博冠信息科技有限公司 一种游戏中寻路的方法和设备
CN104548598A (zh) * 2014-12-31 2015-04-29 北京像素软件科技股份有限公司 一种虚拟现实场景中寻路的方法
CN104645616A (zh) * 2015-03-16 2015-05-27 成都优聚软件有限责任公司 一种塔防游戏中游戏对象的移动路径设置方法和系统
CN106075906A (zh) * 2016-06-03 2016-11-09 腾讯科技(深圳)有限公司 一种模拟对象的寻路方法、场景的搭建方法和对应的装置
CN106294123A (zh) * 2016-07-22 2017-01-04 厦门美图移动科技有限公司 一种遍历测试中路径匹配的方法、装置及移动终端

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1932829A (zh) * 2006-10-19 2007-03-21 北京金山数字娱乐科技有限公司 一种在网络游戏中获取两点间路径的系统与方法
CN101239240B (zh) * 2007-02-07 2011-06-22 盛趣信息技术(上海)有限公司 一种非玩家角色的控制方法
CN104759097A (zh) * 2015-04-13 2015-07-08 四川天上友嘉网络科技有限公司 游戏中的自动寻路方法
JP5887458B1 (ja) * 2015-11-04 2016-03-16 株式会社Cygames プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等
CN106201266B (zh) * 2016-07-06 2019-05-28 广东小天才科技有限公司 一种虚拟角色移动的控制方法及装置、电子设备
CN106964156B (zh) * 2017-03-24 2020-10-27 腾讯科技(深圳)有限公司 一种寻路方法以及装置
CN106790224B (zh) * 2017-01-13 2018-09-07 腾讯科技(深圳)有限公司 一种控制模拟对象寻路的方法及服务器
CN107185242B (zh) * 2017-04-27 2018-09-04 腾讯科技(深圳)有限公司 多单位寻路方法及装置
CN106814966B (zh) * 2017-01-24 2018-12-11 腾讯科技(深圳)有限公司 一种控制对象的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940948A (zh) * 2005-09-30 2007-04-04 腾讯科技(深圳)有限公司 在二维游戏场景中实现跟随的方法及装置
CN103893969A (zh) * 2014-04-15 2014-07-02 广州博冠信息科技有限公司 一种游戏中寻路的方法和设备
CN104548598A (zh) * 2014-12-31 2015-04-29 北京像素软件科技股份有限公司 一种虚拟现实场景中寻路的方法
CN104645616A (zh) * 2015-03-16 2015-05-27 成都优聚软件有限责任公司 一种塔防游戏中游戏对象的移动路径设置方法和系统
CN106075906A (zh) * 2016-06-03 2016-11-09 腾讯科技(深圳)有限公司 一种模拟对象的寻路方法、场景的搭建方法和对应的装置
CN106294123A (zh) * 2016-07-22 2017-01-04 厦门美图移动科技有限公司 一种遍历测试中路径匹配的方法、装置及移动终端

Also Published As

Publication number Publication date
TW201826755A (zh) 2018-07-16
WO2018130135A1 (zh) 2018-07-19

Similar Documents

Publication Publication Date Title
TWI664836B (zh) 控制模擬對象尋路的方法、裝置及伺服器
TWI658854B (zh) 虛擬對象的虛擬資源獲取的方法及客戶端
KR101517927B1 (ko) 동적 장애가 없는 네트워크 게임 시스템 및 그 처리 방법
JP7455846B2 (ja) オブジェクトジャンプの制御方法、装置、コンピュータデバイスおよびコンピュータプログラム
JP5887458B1 (ja) プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等
CN112044074B (zh) 对非玩家角色寻路的方法、装置、存储介质及计算机设备
WO2021244322A1 (zh) 瞄准虚拟对象的方法、装置、设备及存储介质
US20220266143A1 (en) Virtual object interaction method and related apparatus
WO2014173187A1 (en) Systems and methods for path finding in maps
US11931653B2 (en) Virtual object control method and apparatus, terminal, and storage medium
WO2018103633A1 (zh) 一种图像处理的方法及装置
CN110812844A (zh) 一种游戏中的寻路方法、终端及可读存储介质
US20140316700A1 (en) Systems and Methods for Path Finding
CN110755848A (zh) 一种游戏中的寻路方法、终端及可读存储介质
JP7209826B2 (ja) インタラクショングラフィックユーザインターフェースをディスプレイするための方法、その装置及びそのコンピュータプログラム
CN110152297A (zh) 虚拟资源的编辑方法及装置、存储介质、电子设备
JP5942031B1 (ja) プログラム、ゲームの制御方法、及び情報処理装置
KR20230145430A (ko) 가상 환경에서의 좌표축 표시 방법 및 장치, 그리고 단말기 및 매체
CN117899482A (zh) 游戏的寻路控制方法、装置、处理设备及存储介质
CN112915541B (zh) 跳点搜索方法、装置、设备及存储介质
US20140324342A1 (en) Systems and Methods for Path Finding in Maps
JP5977878B1 (ja) プログラム、ゲームの制御方法、及び情報処理装置
JP2024522484A (ja) 仮想シーンに基づくグラフィック表示方法、装置、機器及びコンピュータプログラム
CN111346374B (zh) 一种互动方法和相关装置
JP2017094120A (ja) プログラム、ゲームの制御方法、及び情報処理装置