4

我正在将地图实现为电脑游戏配件;它应该通过一些信息覆盖显示计算机游戏的地理位置。我想知道在 JavaFX 或更准确地说是 ScalaFX 中实现这一目标的最佳方法是什么。

现在,我有一个非常幼稚的实现:

  • 我有不同缩放级别的地图图块。对于每个缩放级别,我将ImageViews 排列在 a 中Group并转换该组,以便所有缩放级别使用相同的坐标。
  • 我的叠加层使用了一个具有相同坐标的单独组。
  • 我使用鼠标滚轮进行缩放,只显示一个缩放级别,具体取决于当前缩放。
  • 我将所有这些打包到一个ScrollPane.

这有一些限制:

  • 所有缩放级别的所有图块都在启动时加载。这很难看,但适用于我的特定用例。
  • 仅当地图的边界有限时,使用 ScrollPane 才有效。同样,这里很好,但一般不适用于地图。
  • UX 很奇怪:ScrollPane 使用鼠标滚轮滚动,而大多数地图通过拖放滚动;大多数地图使用鼠标滚轮缩放或捏缩放。缩放在手势过程中保留“锚点”(鼠标/触摸位置)至关重要。(开箱即用的移动设备也很好,但这只是现在的梦想......)
  • 根据当前缩放,叠加层中的不同细节级别是可能的,但可能不是很有效或不方便。

显然,这是我尝试过的方法之一。This question提到了一些eppleton的图书馆,但似乎没有维护,曾经描述图书馆的博客也不存在了。此外,它似乎专注于提供一个游戏引擎,一个对游戏有意义的图块;地图中的瓦片只是一个图像,叠加层并不关心一个瓦片的开始或结束位置。

用一个具体的问题来结束这个:有没有我可以使用的库或技术来满足我的需求?我对我的第三个要点(UX)特别感兴趣,但我想如果有合适的方法,它将涵盖第 1 到第 3 点。

4

1 回答 1

1

更新:现在桌面上几乎没有更多选项:


一种选择是不构建而是使用现有的开源项目,例如openmapfx

于 2015-07-14T15:43:08.687 回答