我有一个用于 HTML5 画布的 JavaScript 中的寻路脚本,似乎存在多路复用问题。
该脚本已从此处接受的 SO 答案中提取并稍作修改:A* Start pathfinding in HTML5 Canvas(也有相同的错误)。
如何复制问题:当红色方块在移动时,只需在地图上快速单击,您就会看到方块似乎分裂或分支到每条不同的路径。
我认为正在发生的事情是,你应该注意到红色方块在分支过程中开始闪烁,实际上只是同一个方块试图同时在多个地方,导致同一个方块来回“传送”交替帧中的帧速率。虽然这只是一个理论,但我认为它实际上并没有产生更多的方块。
我不确定它是否与movePlayer()
功能或pathFinding()
功能有关。我认为我需要做的是,如果对象正在移动并且目标图块已更新,请取消任何先前的操作,而不是继续同时运行它们 - 我不知道我会如何做到这一点。
由于这最终将成为敌方 AI 脚本,因此目标图块将始终随着玩家在地图上移动而实时更新,这可能会导致此问题浮出水面。
谢谢,我很感激调试这个的任何帮助!