我正在做一个路径查找项目,作为我四年制软件工程学位的一部分。我们应该为一系列多智能体路径查找算法提供可视化表示。最简单的是为多智能体改编的 A* 算法。
无论如何,我们的环境是一个网格地图,每个单元格都可以被阻塞或用作代理路径的一部分。我想做的是使用动画来很好地表示代理的最终移动,但要在我的网格中动画颜色变化。例如,用某种颜色绘制路径中的每一步一秒左右,以显示代理是如何移动的。
我想做的另一件事是通过绘制 A* 算法在进行计算时,开放列表和封闭列表中的变化来表示算法的工作方式。
我正在使用观察者设计模式的改编版本,将事件从我的算法层发送到我的控制器和 GUI 层。我想在 GUI 层做的是,每次将一个瓦片添加到开放列表时,我都希望该单元格被绘制成某种颜色,然后根据预定义的计时器让它逐渐消失,或者稍后添加一个滑块来控制这个计时器。
我查看了这里的代码。它看起来很简单,问题是每个瓦片动画都必须独立于其他动画,以允许算法和所有内容保持运行,并且允许启动不同的动画。
那么实现我想要的结果的最佳方法是什么?我应该为每个动画打开一个不同的线程,还是为每个单元格预先创建一个线程?对于应用程序来说,这是否有点过头了,因为最多可能有 1000 个单元格,因此有接近 1000 个线程在执行动画。
我认为我可能遇到的另一个问题是,一个单元格可能会启动其颜色渐变动画,然后必须重新启动,我不希望两个动画同时进行(同一时间只有一个线程为同一单元格执行动画)。
我希望我已经足够清楚地说明了我想要实现的目标,如果有人有任何想法或想法,它真的可以帮助我的项目。
回答:
你可以发现 Trident 动画库 很有用。更多信息请访问 http://kenai.com/projects/trident/pages/Home