gpt4 book ai didi

java - 无法移动 libgdx OrthographicCamera

转载 作者:行者123 更新时间:2023-12-01 14:59:51 26 4
gpt4 key购买 nike

我在使用 libGDX 中的 Camera 类时遇到问题,即使它的位置发生变化,我也无法直观地移动它。

这就是我设置相机的方式:

camera = new OrthographicCamera(frustumWidth, frustumHeight);

这就是我改变其位置的方法:

world.onUpdate(deltaTime, camera);
renderer.render(world);
camera.position.set(MathUtils.random(0, 800), MathUtils.random(0, 480), 0);
//camera.position.set(
// world.dynamicObjects.get(GameWorld.MainPgID).pos.x * GameWorld.frustumToWorldRatio,
//world.dynamicObjects.get(GameWorld.MainPgID).pos.y * GameWorld.frustumToWorldRatio, 0);

我在 .render 函数的开头提交更改:

camera.update();
batcher.setProjectionMatrix(camera.combined);
batcher.begin();
polygonBatcher.begin();

正如我所说,位置确实发生了变化,但在我尝试过的许多组合中,没有一个有效。也许我误解了相机的工作原理,我需要移动物体而不是相机?对我来说似乎很愚蠢,毕竟它被称为相机是有原因的。

最佳答案

您必须将组合投影矩阵应用于您希望它影响的每个批处理/渲染器。

但除此之外,似乎还不错。尝试一步步调试。设置一个仅包含 new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); 和一些线条 (ShapeRenderer) 或 Sprite (SpriteBatch) 的简单项目,将投影矩阵设置为camera.combined,更改camera.positionupdate() 相机。应该可以了。

然后,当您更改camera.position时,所有具有相机视锥体的渲染器都应相应偏移,而不更改 Sprite /几何体的偏移。

顺便说一句。 x 和 y 的视口(viewport)不是 0 - 800,而是 -400 - 400;

关于java - 无法移动 libgdx OrthographicCamera,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13825915/

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