在物品展示框中的多个地图上显示图像
Display Images on Multiple Maps in Item Frames
我正在尝试使用 Spigot/Bukkit java 插件创建类似幻灯片的创建。我一直在努力在网上找到这个问题的答案。我想要的是项目框架上的 5x5 地图网格,我可以在上面放置图像。我想根据命令在不同图像之间切换。我该怎么做?
我曾尝试实现一个带有地图的视频播放器。让我们从小一点开始,在一张地图上显示一张图像。为此,您需要实现自己的 MapRenderer. Just create a class which inherit from the MapRenderer class an override the render method. You need to resize and load the Image before drawing with drawImage()。每次 tick 都会调用 render 方法,这就是为什么你不应该在 render 方法中这样做,它会花费太多时间并且会阻塞你的主线程。
要应用渲染器,只需使用 createMap() 方法创建一个地图视图,使用 mapview.getRenderers().clear();
清除渲染器列表并添加您自己的渲染器 mapview.getRenderers().add(ownRenderer);
.
作为最后一步,您需要将 MapView 应用到 MapItem。只需创建地图 material 的 ItemStack 并将元数据转换为 MapMeta to apply the MapView with setMapView().
要将图像跨越多个地图,只需创建多个渲染器和地图视图实例,它们都显示图像的另一部分(您可以使用以下方法拆分图像:getSubimage())。同样,异步拆分图像,绝对不在渲染方法中。
希望这对您有所帮助,这不是一个完整的教程,但您应该能够使用这些提示创建一个小原型。
我正在尝试使用 Spigot/Bukkit java 插件创建类似幻灯片的创建。我一直在努力在网上找到这个问题的答案。我想要的是项目框架上的 5x5 地图网格,我可以在上面放置图像。我想根据命令在不同图像之间切换。我该怎么做?
我曾尝试实现一个带有地图的视频播放器。让我们从小一点开始,在一张地图上显示一张图像。为此,您需要实现自己的 MapRenderer. Just create a class which inherit from the MapRenderer class an override the render method. You need to resize and load the Image before drawing with drawImage()。每次 tick 都会调用 render 方法,这就是为什么你不应该在 render 方法中这样做,它会花费太多时间并且会阻塞你的主线程。
要应用渲染器,只需使用 createMap() 方法创建一个地图视图,使用 mapview.getRenderers().clear();
清除渲染器列表并添加您自己的渲染器 mapview.getRenderers().add(ownRenderer);
.
作为最后一步,您需要将 MapView 应用到 MapItem。只需创建地图 material 的 ItemStack 并将元数据转换为 MapMeta to apply the MapView with setMapView().
要将图像跨越多个地图,只需创建多个渲染器和地图视图实例,它们都显示图像的另一部分(您可以使用以下方法拆分图像:getSubimage())。同样,异步拆分图像,绝对不在渲染方法中。
希望这对您有所帮助,这不是一个完整的教程,但您应该能够使用这些提示创建一个小原型。