我有一張地圖,上面有一段用一種特定顏色繪製的段落,人們只能走在這段經文上 - 所以其他顏色是障礙。有沒有任何工具/庫/算法,允許從這種地圖創建圖形?從PNG地圖創建圖形
0
A
回答
1
不需要任何庫或工具來構建它。手頭的任務非常簡單且足夠獨特,足以證明新實施的合理性。
下面我概述了我將爲完成此任務而構建的組件,特別強調它們的狹義職責。
格拉夫[T]
該圖表示節點的集合中的節點對之間的二元關係。 T
代表與這些節點相關的有效載荷 - 在您的使用情況下,圖像的像素座標。我們沒有假設圖是否是定向的或非循環的或類似的東西。
節點[T]
在曲線圖中的單個節點。它有一個類型爲T
的通用有效載荷和一個稱爲GetNeighboringNodes
的方法。
PassageGraphBuilder
這個類是負責創建Graph<PixelCoordinates>
出Image
的。它包含的配置Color
代表給定Image
內的一個段落,並且其方向性(剛好向上/向下/向左/向右或對角線以及?)允許連通性。
它通過爲Image
中的每個像素創建一個Node<PixelCoordinates>
來執行此任務。然後通過檢查Image
中每個相鄰像素的顏色,創建這些節點之間的關係。
WorldToGraphMap
該組件映射世界的責任座標到像素座標。這可以讓你的世界的規模獨立於驅動它的數據。它有像GetWorldCoordinatesForNodeCenter(Node<PixelCoordinates>)
和GetNodeForWorldCoordinates(WorldCoordinates)
的方法。
然後你可以...
最後,你可以做到以下幾點:
- 作爲輸入一個新的理論位置(在世界座標)的球員,大概是通過控制器驅動輸入,
- 呼叫
GetNodeForWorldCoordinates(WorldCoordinates)
,以確定新的位置對應於圖中的節點, - 檢查玩家的當前節點,以確定是否兩個節點neighb或者:
- 如果新節點是舊節點的鄰居,則允許移動;
- 否則,禁止它。
當然,還有很多複雜的構造一個真正的導航網格,但這應該讓你去這個用例。
相關問題
- 1. 從Google地圖等PNG創建地圖
- 2. Java - 從PNG圖像創建形狀(NullPointerException)
- 3. 從圖形創建圖像
- 4. 迭代地創建圖形
- 5. 底圖:使用圖形和地圖創建圖形
- 6. 從QRCode創建png圖像iPhone版
- 7. 使用php從URL創建png圖像
- 8. 從png創建圖像,轉換爲base64
- 9. 創建從PNG的OpenGL繪圖的UIImage
- 10. 從圖形創建「配對」?
- 11. 從eclipse創建地圖地圖toString()
- 12. opencv的 - 創建PNG圖像
- 13. 如何從圖形創建圖像?
- 14. 從位圖或圖形創建D3DX質地
- 15. 使用.png中的圖像創建.png圖像
- 16. 在隱形格創建lealetjs地圖
- 17. 在Google地圖中創建矩形
- 18. 從掃描圖像創建地圖
- 19. 創建縮略圖創建png,jpg和gif圖像
- 20. 如何從位圖創建透明PNG圖像?
- 21. PHP:如何從另一個PNG圖像創建圖像
- 22. 如何從jpeg圖片創建png圖片
- 23. c#圖形創建
- 24. JSP:創建圖形
- 25. 創建條形圖
- 26. 創建「隱形」圖形
- 27. 隱藏'圖形'創建的圖形
- 28. Unity地形 - 從谷歌地圖構建地形
- 29. php GD爲ean13條形碼創建一個透明PNG圖像
- 30. 從400圖形創建一個精靈圖形?
當你創建一個這樣的遊戲時,你應該使用[model/view/controller pattern](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) 。該模型將包含創建您的地圖和創建圖形的信息。 –