Libgdx: 使用视口时如何计算精灵大小

Libgdx: How to calculate sprite size when viewport is in used

关于使用 libgdx 视口,我有几个问题。

  1. 我已经用这个虚拟屏幕尺寸 (800 x 480) 初始化了一个视口。我正在尝试显示具有 (100 x 100) 虚拟大小的精灵。我是否根据屏幕尺寸比例重新计算以提供尺寸?或者我直接将虚拟大小应用到精灵?
  2. 当我初始化相机时,我可以提供虚拟宽度和高度。我还注意到,我可以在初始化视口时提供虚拟宽度和高度。这是两个不同的东西吗?或者我只需要在视口或相机中提供虚拟宽度和高度?

1) 如果您使用的是虚拟屏幕尺寸,您将为精灵使用虚拟尺寸来绘制它们。如果您使用大小为 800x480 的 FitViewport 并渲染一个(虚拟)大小为 800x480 的 Sprite(您将这些值提供给 SpriteBatch),那么它将填满整个屏幕,即使实际屏幕会为 1600x960。

2) Viewport 根据您为 Viewport 选择的策略为您管理 Camera.viewportWidthcamera.viewportHeight。您可以自己设置,但是当您设置 Viewport.update(...)Viewport.apply() 时,您相机的值将被覆盖。