如何将精灵添加到 Box2d Body?
How to add sprite to a Box2d Body?
我刚刚为游戏制作了我的角色,它是一个 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);
}
是否可以向 body 添加纹理或精灵?或者我只是将精灵位置设置为与 body 的位置相同?这样它将覆盖 body 的形状并像实际的 box2d body.
一样移动
Box2D 物理库完全与图形无关 API - 它根本不理解精灵。它是物理世界的 none 视觉(只是数据)模拟。
如您所述,您必须创建一个 Sprite 并move/rotate它与 Box2D 模拟保持同步。
Here is a good beginners guide 将精灵链接到 Box2D 模拟
我刚刚为游戏制作了我的角色,它是一个 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);
}
是否可以向 body 添加纹理或精灵?或者我只是将精灵位置设置为与 body 的位置相同?这样它将覆盖 body 的形状并像实际的 box2d body.
一样移动Box2D 物理库完全与图形无关 API - 它根本不理解精灵。它是物理世界的 none 视觉(只是数据)模拟。
如您所述,您必须创建一个 Sprite 并move/rotate它与 Box2D 模拟保持同步。
Here is a good beginners guide 将精灵链接到 Box2D 模拟