ゲームには、Aurélien Ribon による LibGDX Project Setup を使用しました。次の方法でカメラを作成します。
public void create() {
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1, h/w);
水平軸が -0.5 から 0.5 まで、垂直軸が -0.5*screenHeight から 0.5*screenHeight までの範囲であるため、スプライトの配置が簡単になります。
ただし、Box2d でいくつかの問題が発生すると思います。跳ねるボールを作成しようとしています。次のことを行います。
BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyType.DynamicBody;
bodyDef.position.set(0, 0); //center of screen
ballBody = world.createBody(bodyDef);
dynamicCircle = new CircleShape();
dynamicCircle.setRadius(0.02f); // really small body size
ballFixture = new FixtureDef();
ballFixture.shape = dynamicCircle;
ballFixture.density = 0.5f;
ballFixture.restitution = 0.9f;
ballBody.createFixture(ballFixture);
画面の下部近くに地面の静止体もあります。問題は、ボールが数回バウンドし、最後に (バウンドが非常に低く頻繁に行われる必要がある場合)、着地するだけで動かないことです。
これは、私のワールド単位 (横軸の 1 単位) と関係があると思います。現在のワールド設定を維持し、正しい Box2d 物理を取得するにはどうすればよいですか?