我最近开始使用Libgdx进行开发。现在,我正在研究自定义形状的碰撞检测。就我而言,我想检测鲨鱼与其他物体的碰撞。由于鲨鱼是一个自定义形状,我使用物理体编辑器(https://code.google.com/p/box2d-editor/downloads/detail?name=physics-body-editor-2.9.2.zip&can=2&q=)将形状转换为json格式。
我已经有了鲨鱼和其他东西的图像绘制代码,但现在我不知道如何使用json文件实现对collission的检测。 phycics body编辑网站上的教程采用了与我不同的方法。
现在,我正在使用渲染方法绘制我的鲨鱼:
batcher.draw(sharkAnimation, shark.getX(),
shark.getY(), shark.getWidth(), shark.getHeight());
sharkAnimation是一个TextureRegion,而shark是一个具有X,Y,宽度和高度的对象。 鲨鱼的宽度和高度是可变的,但保持相同的比例。
我已经获得了libgdx的bodyeditor,我正在尝试使用以下代码,但老实说,我不知道应该如何处理这个问题。
BodyEditorLoader loader = new BodyEditorLoader(
Gdx.files.internal("data/shark.json"));
// 1. Create a BodyDef, as usual.
BodyDef bd = new BodyDef();
bd.position.set(0, 0);
bd.type = BodyType.DynamicBody;
// 2. Create a FixtureDef, as usual.
FixtureDef fd = new FixtureDef();
fd.density = 1;
fd.friction = 0.5f;
fd.restitution = 0.3f;
loader.attachFixture(????, ????, ???, ????);
帮助非常明显。
答案 0 :(得分:2)
您需要创建一个主体,然后使用加载器将您在编辑器中创建的夹具附加到该主体。
Body body = getWorld().createBody(bd);
loader.attachFixture(body, name, fd, scale);
这个名字就是你在物理编辑器中叫它的名字。缩放是您希望从默认大小缩放的程度。如果您不想更改它,请使用1。