【发布时间】:2013-01-08 01:07:26
【问题描述】:
我有一个用于 HTML5 画布的 JavaScript 中的寻路脚本,似乎存在多路复用问题。
该脚本已从此处接受的 SO 答案中提取并略微改编:A* Start path finding in HTML5 Canvas(也有相同的错误)。
如何重现问题:只需在红色方块移动时在地图上快速单击,您就会看到方块似乎分裂或分支到每条不同的路径.
我认为正在发生的事情是,您应该注意到红色方块在分支过程中开始闪烁,实际上只是同一个方块试图同时在多个地方,导致同一个方块“传送”回来并以交替帧中的帧速率。虽然这只是一个理论,但我认为它实际上并没有产生更多的方块。
我不确定它是否与 movePlayer() 函数或 pathFinding() 函数有关。我认为我需要做的是,如果对象正在移动并且目标图块已更新,请取消任何先前的操作,而不是继续同时运行它们 - 我不知道该怎么做。
由于这最终将成为敌方 AI 脚本,因此目标图块将始终随着玩家在地图上移动而实时更新,这可能会导致此问题浮出水面。
谢谢,感谢您在调试时提供的任何帮助!
【问题讨论】:
-
我会尝试预先计算帧并使其平滑
-
@philipp 你的意思是某种帧缓冲?
-
至少对于视图/渲染部分
-
@philipp 我会检查一下方法并试一试。
标签: javascript html artificial-intelligence path-finding