libgdx 如何以世界单位获取高度和宽度
libgdx how to get height and width in world units
我想了解 viewports
在 Libgdx
中的用法 我有变量 V_WIDTH = 800
和 V_HEIGHT = (V_WIDTH / (4f/3f))
所以 V_HEIGHT = 600
。这是我初始化和更新视口的方式:
// init viewport (in the constructor):
viewport = new FitViewport(NoThanksClient.V_WIDTH, NoThanksClient.V_HEIGHT);
// in the resize method:
viewport.update(width,height, true);
我有一个绿色矩形的纹理,我想把它画在左上角。我是这样做的:
batch.draw(
frameTexture,
0,
viewport.getScreenHeight() - FRAME_TEXTURE_HEIGHT,
FRAME_TEXTURE_WIDTH,
FRAME_TEXTURE_HEIGHT);
一切正常。但是当我调整屏幕大小时,纹理 (frameTexture
) 从屏幕上移出或移入。为什么它不呆在角落里?我该怎么做才能让它留下来?
好吧,您的视口还需要一个摄像头。摄像机将游戏显示在屏幕上。视口是管理相机大小的东西。涉及到批次绘图时,您需要 link 批次到那个相机。这是你应该如何初始化你的视口:
private Camera camera;
private Viewport viewport;
public void create() {
camera = new OrthographicCamera();
viewport = new FitViewport(NoThanksClient.V_WIDTH, NoThanksClient.V_HEIGHT, camera);
}
这会将视口将要操纵的相机设置为 OrthographicCamera。您也可以使用 Camera 的任何子项 class。
您的调整大小方法很好,您只需要在绘制之前在渲染方法中再添加一行。
batch.setProjectionMatrix(camera.combined);
batch.draw(
frameTexture,
0,
viewport.getScreenHeight() - FRAME_TEXTURE_HEIGHT,
FRAME_TEXTURE_WIDTH,
FRAME_TEXTURE_HEIGHT);
设置投影矩阵将确保批次绘制到该相机,从而通过您创建的视口。我希望这会有所帮助,如果您还有其他问题,请告诉我。您可以找到有关视图端口的更多信息 here.
我想了解 viewports
在 Libgdx
中的用法 我有变量 V_WIDTH = 800
和 V_HEIGHT = (V_WIDTH / (4f/3f))
所以 V_HEIGHT = 600
。这是我初始化和更新视口的方式:
// init viewport (in the constructor):
viewport = new FitViewport(NoThanksClient.V_WIDTH, NoThanksClient.V_HEIGHT);
// in the resize method:
viewport.update(width,height, true);
我有一个绿色矩形的纹理,我想把它画在左上角。我是这样做的:
batch.draw(
frameTexture,
0,
viewport.getScreenHeight() - FRAME_TEXTURE_HEIGHT,
FRAME_TEXTURE_WIDTH,
FRAME_TEXTURE_HEIGHT);
一切正常。但是当我调整屏幕大小时,纹理 (frameTexture
) 从屏幕上移出或移入。为什么它不呆在角落里?我该怎么做才能让它留下来?
好吧,您的视口还需要一个摄像头。摄像机将游戏显示在屏幕上。视口是管理相机大小的东西。涉及到批次绘图时,您需要 link 批次到那个相机。这是你应该如何初始化你的视口:
private Camera camera;
private Viewport viewport;
public void create() {
camera = new OrthographicCamera();
viewport = new FitViewport(NoThanksClient.V_WIDTH, NoThanksClient.V_HEIGHT, camera);
}
这会将视口将要操纵的相机设置为 OrthographicCamera。您也可以使用 Camera 的任何子项 class。
您的调整大小方法很好,您只需要在绘制之前在渲染方法中再添加一行。
batch.setProjectionMatrix(camera.combined);
batch.draw(
frameTexture,
0,
viewport.getScreenHeight() - FRAME_TEXTURE_HEIGHT,
FRAME_TEXTURE_WIDTH,
FRAME_TEXTURE_HEIGHT);
设置投影矩阵将确保批次绘制到该相机,从而通过您创建的视口。我希望这会有所帮助,如果您还有其他问题,请告诉我。您可以找到有关视图端口的更多信息 here.