我正在用LibGDX做一个原型项目,我正在使用Box2D进行物理实验。我已经创建了一个地图,并为他添加了一些碰撞,我还添加了具有圆形的实体。这些圆在Box2D世界中的位置是正确的,但我想要固定到它们的纹理是基于其他坐标,我认为是从用户相机获得的。结果如下:

我在"Entity“基类中的render方法
public void update() {
handleInput();
}
public void render(SpriteBatch batch) {
update();
batch.begin();
batch.draw(texture, body.getPosition().x, body.getPosition().y);
batch.end();
}我在BaseMap类中的render方法
private void update(OrthographicCamera camera) {
camera.position.x = player.getPosition().x;
camera.position.y = player.getPosition().y;
world.step(1/60f, 6, 2);
}
public void render(OrthographicCamera camera, SpriteBatch batch) {
update(camera);
renderer.setView(camera);
batch.begin();
renderer.render();
batch.end();
for(Entity entity : entities) {
entity.render(batch);
}
}这里的渲染器是一个OrthogonalTiledMapRenderer
发布于 2020-05-09 18:01:22
确保同时为批处理设置矩阵:
batch.setProjectionMatrix(camera.combined);Box2DDebugRenderer也是如此:
renderer.render(world, camera.combined);这是假设您没有使用缩放的box2d世界。
https://stackoverflow.com/questions/61553721
复制相似问题