我刚刚为游戏制作了一个 box2d 动态 body 角色:
public Body createPlayer(){
Body body;
BodyDef def = new BodyDef();
def.type = BodyDef.BodyType.DynamicBody;
def.fixedRotation = true;
def.position.set(position.x, position.y);
body = world.createBody(def);
PolygonShape shape = new PolygonShape();
shape.setAsBox(1, 1);
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape = shape;
fixtureDef.density = 0.1f;
body.createFixture(fixtureDef).setUserData(this);
body.setLinearVelocity(20, 0);
shape.dispose();
return(body);
}
是否可以向主体添加纹理或 Sprite ?或者我将 Sprite 位置设置为与我的 body 位置相同?这样它将覆盖 body 的形状并像实际的 box2d body 一样移动。
最佳答案
Box2D 物理库完全与图形 API 无关 - 它根本不理解 Sprite 。这是物理世界的非视觉(仅数据)模拟。
正如您所提到的,您必须创建一个 Sprite 并移动/旋转它以与 Box2D 模拟保持同步。
Here is a good beginners guide将 Sprite 链接到 Box2D 模拟
关于java - 如何将 Sprite 添加到 Box2d Body?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34294323/