私はプラットフォームとカメラがプレーヤーを追跡する単純なbox2d世界を持っています。私は画面の一面に触れるときにタッチ入力コントロールを取得しようとしていますが、それは私が思うより複雑です。時々画面をタッチするとボックスが動きますが、私が期待している場所にたどり着いたときには決して動かず、私が触れるところを描くことによってデバッグしようとすると、もっと混乱するだけです。ここlibgdxとbox2d、画面のタッチ座標は無意味です
public void resize(int width, int height) {
camera.setToOrtho(false, width/2, height/2);
}
カメラ更新
public void cameraUpdate(float delta){
Vector3 position = camera.position;
position.x = player.getPosition().x * PPM;
position.y = player.getPosition().y * PPM;
camera.position.set(position);
camera.update();
}
のサイズを変更する方法
public void render() {
update(Gdx.graphics.getDeltaTime());
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
b2dr.render(world, camera.combined.scl(PPM));
}
をレンダリングする方法
public void create() {
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
Gdx.input.setInputProcessor(new MyInputProcessor());
camera = new OrthographicCamera();
camera.setToOrtho(false, w/2, h/2);
touchpos = new Vector3();
world = new World(new Vector2(0, -9.8f), false);
b2dr = new Box2DDebugRenderer();
player = createBox(8, 10, 32, 32, false);
platform = createBox(0, 0, 64, 32, true);
}
を作成するカメラを持つすべてのコードがありますか
を聞いて触れます
タッチ入力方法と数学
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
touchpos.set(screenX, screenY, 0);
camera.unproject(touchpos);
if (touchpos.x > 500){
touchleft = true;
}
else touchleft = false;
if (touchpos.x < 300){
touchright = true;
}
else touchright = false;
if (300 < touchpos.x && touchpos.x < 500){
touchcenter = true;
}
else touchcenter = false;
return true;
}
私は常に同じになるように制御するために使用する領域が、それのdidnをしたいと、それはカメラいじりせずに生のタッチ値を使用するのと同じくらい簡単であるべきだと思います」私はgoogleに行って、投げ飛ばされて、カメラで他の手探りをしてみましたが、タッチは決して働いていませんでした。
私は答えが簡単であるように感じる。私は必要なのは、それは、画面の左または右にタッチを検出したときに多くの経験を持つ人は、私がスーパー