簡體   English   中英

使用 autotiles 在等距游戲中尋路:如何修改 NavigationMesh

[英]Pathfinding in isometric game with autotiles: How to modify NavigationMesh

我正在使用等距自動圖塊程序生成 map。 每個圖塊都有在 Tilemap 編輯器中定義的導航多邊形。 Navigationmesh 工作正常。 問題是我生成的 map 比實際可玩區域要大。 我不想讓人類玩家看到 map 的邊界,即“黑色背景”。 所以我限制了相機視圖的移動。 因此,導航網格超出了可玩區域,如下圖所示:

游戲畫面

我正在使用尋路來移動玩家角色。 由於 map 是程序生成的,有時它會生成一個 map,其中一個點的路徑超出可玩區域然后返回以到達其目的地。 像這樣:

尋找路徑

O 中的玩家將 go 在可玩之外到達 X。在 X 中可能是一個興趣點,所以如果生成這種 map,我會簡單地重新生成它,直到我得到一個可行的。

我正在使用 GODOT 3.51。

我考慮過:

  • 使用 clip_polygons() 在可玩區域邊界的導航網格中雕刻一個洞。 但是因為我使用自動導航,所以很難獲得導航多邊形實例。 我已經嘗試過了,但慘遭失敗。

- 在邊界上添加 NavigationObstacles:沒試過這個,但據我的研究了解,這不會避免代理生成到目的地的路徑。

我的想法是實現沒有路徑超出可玩區域,然后通過檢查所有興趣點(隨機生成)是否可達來檢查 map 是否可行。 這是通過檢查從起點到興趣點的每條路徑的最后一點,看看它是否等於興趣點 position 來完成的。

我希望這是可以理解的。 有時我不明白自己。

我想到的是使用兩個版本的磁貼。 一個不可通行的,將用於生成玩家不應到達的區域。 以及用於可玩區域的常規區域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM