我與蘋果的GameplayKit,SpriteKit和斯威夫特試驗網格的路徑。我試圖通過僅從一側通過的瓦片來尋找我的頭部。查找與GameplayKit
下圖顯示了兩個問題:
左邊是一個簡單的解決辦法,我知道如何從綠色位置移動到紅色的位置,因爲所有我需要做的是去除wall
節點(黑色方框)並計算路徑。
圖的右邊我百思不得其解。假設我想要在左手側有牆的瓷磚(如圖所示),但我仍然希望能夠導航到牆上的瓷磚。我該如何去告訴圖表:如果從頂部,底部或右側接近而不是左側,那麼瓦片左側的瓦片只能通過?
針對亞歷山德羅的評論,我將有關代碼的結構解釋。我使用引入到iOS 10中的SpriteKit的新TileMapNode
來表示瓦片貼圖。每個瓷磚是SKTileDefinition
。自定義屬性可以在SKTileDefinition
上設置(例如,我可以設置Int
來表示瓷磚頂部,底部,左側或右側是否有牆)。使用GameplayKit查找地圖的實際表示方式並不重要。據我所知,GameplayKit只允許你從圖形中刪除無法通過的節點,但我想要做的事情是將某些節點標記爲可通過,但只能從特定方向標記。
這在我看來是一個常見的問題(因爲很多遊戲都不必犧牲整個瓷磚代表的內壁),但我沒有不懂怎樣去做。
什麼是瓷磚?它是SKSpriteNode嗎?你想要什麼尺寸?您是否使用TileMap的三維零件庫?你如何移動你的角色?什麼是牆?在你的問題之後,我有比你更多的問題,所以請張貼一些代碼,一些細節,這個問題似乎是一個電視測驗。 –