How to combine Box2d bodies?(如何组合 Box2d 实体?)
问题描述
我有一个不只是一个盒子或圆形的纹理,我的身体需要与这个形状相同,所以我想组合多个身体来达到我想要的形状,这有可能吗?或者有更好的方法吗?我正在使用带有 libgdx 框架的 java.
I have a texture which is not just a box or circle and my body needs to be the same of this shape so I was thinking to combine multiple bodies to achieve my desired shape, is it even possible? or there are better ways to do it? I'm using java with libgdx framework.
推荐答案
body的形状由Fixture 实例.由于 body 可以有多个固定装置,因此您可以根据需要组合多种形状.
The shape of body is being defined by Fixture instance. Since body can have multiple fixtures you can combine many shapes as you wish.
要创建许多夹具,您可以与其他人多次调用 createFixture 方法 FixtureDef 对象,如
To create many fixtures you jest call createFixture method many times with others FixtureDef objects like
FixtureDef fd1 = new FixtureDef();
FixtureDef fd2 = new FixtureDef();
...
fd1.shape = shape1;
fd2.shape = shape2;
...
body.createFixture(fd1);
body.createFixture(fd1);
虽然请注意 Box2D 通过提供 physics/box2d/ChainShape.html" rel="nofollow">ChainShape 可以让你创建任何你想要的形状
Although please notice that Box2D supports more than circles and rectangles by providing ChainShape that allows you to create any shape you want
ChainShape weird = new ChainShape();
weird.createLoop( new float[]{vertice1x, vertice1y, vertice2x, ...});
要加入机构,有 Joint(看看 这里) 机制,但我想这不是你想要的
To join bodies there is Joint (take a look here) mechanism but I guess it's not what you want here
这篇关于如何组合 Box2d 实体?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何组合 Box2d 实体?
基础教程推荐
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01