javascript - A* 在 Canvas 上寻路

标签 javascript canvas path path-finding

我有一个游戏 Angular 色,正在屏幕上制作动画。 由于非常具体的原因,该 Angular 色必须位于 DIV( Canvas 外)内。

我正在 Canvas 上绘制黑白图像并循环像素数据来定义 Angular 色的可步行区域。效果很好。

现在需要设置寻路。 我读过大量有关使用 A* 算法的文章,当您在游戏循环内移动 Angular 色时,它似乎非常有意义。

那么,当我的 Angular 色(DIV)没有在 Canvas 循环中绘制时,我如何才能将路径移动信息传递给我的 Angular 色(DIV)? 这可能吗,或者有任何已知的解决方法吗?

谢谢!

最佳答案

所以,你的假设似乎是你必须移动你的 Angular 色才能完成 A* 算法。您不必移动您的实际 Angular 色。基本上,您创建 Angular 色和棋盘的“模拟”并移动它。

1-

用代码创建您的步行区域的表示。听起来你几乎已经完成了这一点,但不是显示它,而是将它存储在数组或其他东西中;某种对你有意义的方式(二维数组?)。

2-

在代码中运行 A* 算法,而不是绘制和移动实际 Angular 色。这里的想法是在你的 Angular 色开始移动之前解决问题并了解寻路解决方案。有几种方法可以做到这一点,具体取决于 A* 的实现方式,但在它运行之后,您希望生成您想要采取的路径的表示(从 (0,0) 开始,转到 (0,1 ),转到(1,1)等)。

3-

将该路径信息传递给您的 Angular 色。现在它已经有了一个关于如何在开始之前到达终点的分步计划。

关于javascript - A* 在 Canvas 上寻路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31685700/

相关文章:

javascript - 使用 Feathers JS 4 和 Objection JS 进行预加载 - 无法读取未定义的属性 'get'

javascript - 找不到命名空间/名称 chrome

javascript - Webpack 和 Karma 测试 : Uncaught ReferenceError: jQuery is not defined using

javascript - html5 canvas 中的鼠标交互。画线

windows - 覆盖 Windows cmd 内部命令

javascript - 使用 @html.ActionLink 激活类

javascript - 在 Facebook 上分享 Canvas

javascript - 在 html5 Canvas 中创建一个非填充弧?

c# - 在 C# 中指定路径时如何返回一个级别?

java - 无法在 WildFly REST 应用程序中找到文件