我是LibGdx的新手。
我正在尝试使用libgdx和物理
创建一个简单的安卓游戏据我所知,我们可以通过以下方式“绘制”物理体对象(box2d体对象):
debugRenderer.render(world, camera.combined);
或类似的东西:
batch.begin();
sprite = (Sprite) circleBody.getUserData();
sprite.setPosition(circleBody.getPosition().x - (sprite.getWidth() /2) , circleBody.getPosition().y - (sprite.getHeight()/2));
sprite.setSize(45*2, 45*2);
sprite.draw(batch);
batch.end();
有人可以解释一下这两者的区别吗? 我认为将debugRenderer.render用于发布/生产代码并不理想。这是真的吗?
答案 0 :(得分:3)
区别很简单。 Box2dDebugRenderer
非常简单易用。它基本上只需要一行代码(你已经在你的问题中写过的代码),它将呈现简单的形状来可视化你的Box2D World
。它将为Fixture
,Joint
或Contact
s呈现彩色方块,圆圈,线条和点。
您发布的第二种方法完全是自制的。您可以为Body
绘制任何内容。您可以自己绘制一个简单的形状,或精灵,或者动画甚至3D模型。也许什么都没有。
那是"问题"与Box2D。你创建的World
纯粹是一个物理世界,Box2D不知道如何渲染任何东西,这就是你自己要做的事情。与Fixture
相关联的平方Body
可以是墙,也可以是方框或门。
This其他问题有一些图片显示了两种渲染方法的区别。 (不幸的是,它们是在不同的地方呈现的,这就是这个问题的关键所在。)