jbox2d に少し問題があります。
メソッド world.step が呼び出されるとすぐに、ダイナミック ボディが元の位置から移動します。他のすべて (静的ボディの位置と動的ボディの動き) を印刷しようとしましたが、正しいです。
重力 (これは必要ありません) に関係していると思いましたが、ワールドとダイナミック ボディを 0.0f に設定した後も、同じ問題が発生します。
どうなり得るか?
コード:
レベル (コンストラクター)
world = new World(new Vec2(0,10.0f));
レベル(更新方法)
world.step(1/60.0f, 8, 3);
動的エンティティ (コンストラクター)
physicsX = x / Map.METER_IN_PIXELS;
physicsY = y / Map.METER_IN_PIXELS;
initPhysicalBody(world);
初期化方法:
public void initPhysicalBody(World world)
{
BodyDef bd = new BodyDef();
bd.type = BodyType.DYNAMIC;
bd.position.set(physicsX, physicsY);
bd.gravityScale = 0;
PolygonShape ps = new PolygonShape();
ps.setAsBox(getFrameSize().width(), getFrameSize().height());
FixtureDef fd = new FixtureDef();
fd.density = 1;
fd.shape = ps;
body = world.createBody(bd);
body.createFixture(fd);
System.out.println(body.getPosition());
}
更新方法
body.setLinearVelocity(new Vec2(getLastDirection().getX() * getSpeed(),
getLastDirection().getY() * getSpeed()));
どうなり得るか?どうもありがとう!