我最近开始使用Libgdx进行开发。现在,我正在研究自定义形状的碰撞检测。就我而言,我想检测鲨鱼与其他物体的碰撞。由于鲨鱼是一种自定义形状,我使用了Physics Body Editor(https://code.google.com/p/box2d-editor/downloads/detail?name=physics-车身编辑器-2.9.2.zip
我已经有了鲨鱼和其他东西的图像绘制的代码,但是现在我不知道如何用json文件实现对合谋的检测。pycics身体编辑器网站上的教程使用了与我不同的方法。
现在,我正在使用渲染方法绘制鲨鱼:
batcher.draw(sharkAnimation, shark.getX(),
shark.getY(), shark.getWidth(), shark.getHeight());
鲨鱼动画是一个纹理区域,鲨鱼是一个具有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(????, ????, ???, ????);
帮助被大大赞赏。
您需要创建一个实体,然后使用加载器将您在编辑器中创建的夹具连接到该实体。
Body body = getWorld().createBody(bd);
loader.attachFixture(body, name, fd, scale);
这个名字就是你在物理编辑器中所说的。“缩放”是指要将其从默认大小缩放多少。如果你不想更改,只需使用1。