gpt4 book ai didi

java - Box2D 中相机跟随目标

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

我正在尝试在 Box2D 世界中用相机跟随玩家。但有一个抵消。我认为这与每米像素转换有关。在检查我的代码之前,您应该知道 Values.WTB = World_To_Box and has a values of 0.032fValues.BTW = Box_To_World and has a values of 32f .

这是渲染部分:

@Override
public void render(float delta) {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl.glClearColor(0.105f,0.105f,0.105f,1f);

camera.position.set(player.getPosition().x*Values.BTW, player.getPosition().y*Values.BTW, 0);
camera.update();

Matrix4 cameraCopy = camera.combined.cpy();
cameraCopy.scl(Values.BTW);
batch.setProjectionMatrix(cameraCopy);
shapeRenderer.setProjectionMatrix(cameraCopy);

batch.begin();
player.draw(batch);
batch.end();

debugRenderer.render(world, cameraCopy);

world.step(1/60f, 6, 2);

shapeRenderer.begin(ShapeType.Filled);

shapeRenderer.setColor(Color.GREEN);
shapeRenderer.circle(player.getPosition().x, player.getPosition().y, 5*Values.WTB,10);

shapeRenderer.setColor(Color.ORANGE);
shapeRenderer.circle(camera.position.x*Values.WTB, camera.position.y*Values.WTB, 5*Values.WTB,10);

shapeRenderer.end();
}

这是演示的图片: enter image description here

绿色点是玩家的中心位置,橙色点是相机中心位置。从 0,0 坐标越远,偏移量就越大。

我做错了什么?

最佳答案

Values.WTB = World_To_Box and has a values of 0.032f and Values.BTW = Box_To_World and has a values of 32f

没有理由像其他人建议的那样将您的 WTB/BTW 值更改为 0.01f 和 100f,因为您的值几乎是正确的。 2 的幂转换也比 100 的转换快得多。

如果您希望每 box2d 米有 32 个屏幕像素,请继续使用 Values.BTW = 32f。但 Values.WTB 将是 1f/32f = 0.03125f,而不是 0.032f。这只是一个很小的差异,但最终会带来不同。

关于java - Box2D 中相机跟随目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21066017/

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