0
私はLibGDXとBox2Dでいくつかのブレークアウトゲームをコーディングしようとしています。しかし、私が理解していない1つの点があります。 2つのレンガがエッジでのみ接触する必要があります。しかし、エミュレータでは、私はちょうど入れ子の2つのレンガを見た。LibGDX + Box2D:オブジェクトの位置付け
ここcreateBoxメソッドのコードです:
private void createBox(float posX, float posY, float boxW, float boxH) {
BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyDef.BodyType.StaticBody;
bodyDef.position.set(posX, posY);
Body body = world.createBody(bodyDef);
PolygonShape shape = new PolygonShape();
shape.setAsBox(boxW, boxH);
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape = shape;
fixtureDef.density = 1f;
Fixture fixture = body.createFixture(fixtureDef);
shape.dispose();
}
編集:コードを掛けました。
createBox(CONS_HOLDER.BRICKS_LEFT_MARGIN + (i * CONS_HOLDER.BRICK_WIDTH * 2),
CONS_HOLDER.BRICK_TOP_SCREEN_MARGIN + (j * CONS_HOLDER.BRICK_HEIGHT * 2) + CONS_HOLDER.BRICKS_TOP_MARGIN,
CONS_HOLDER.BRICK_WIDTH/2,
CONS_HOLDER.BRICK_HEIGHT/2);
感謝、それは大丈夫です。しかし、私はなぜこの論理が理解できないのでしょうか? 2ボックスのx座標とy座標を乗算すると、肯定的な結果になります。ボックスのHとWを分けると、私が構築した論理全体を変える必要があります。 – Utku
これはBox2Dの設定方法です。ボックスの幅と高さは指定されていますが、パラメータは必要なサイズの半分です。 – waffre
ありがとう – Utku