gpt4 book ai didi

java - 如何在JavaFX/ScalaFX中实现可滚动、可缩放的 map ?

转载 作者:行者123 更新时间:2023-12-02 07:57:06 25 4
gpt4 key购买 nike

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

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

  • 我有不同缩放级别的 map 图 block 。对于每个缩放级别,我将 ImageView 排列在 Group 中并转换该组,以便所有缩放级别都使用相同的坐标。
  • 具有相同坐标的单独组用于我的叠加层。
  • 我使用鼠标滚轮进行缩放,并根据当前缩放情况仅显示一个缩放级别。
  • 我将所有这些打包到 ScrollPane 中。

这有一些限制:

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

显然,这是我尝试过的方法之一。 This question某个 eppleton 提到了一个库,但它似乎没有维护,并且用于描述该库的博客也不再存在了。此外,它似乎专注于提供一个游戏引擎,其中一个图 block 对游戏有意义; map 中的图 block 只是一张图像,叠加层并不关心图 block 的开始或结束位置。

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

最佳答案

更新:现在还有几个选项可供选择:

<小时/>

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

关于java - 如何在JavaFX/ScalaFX中实现可滚动、可缩放的 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31392348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com