オブジェクトをドラッグ アンド ドロップして組み立てるゲームを作りたいです。LibGDX はアクタの DragNDrop のみをサポートしていると思いますが、構造が安定していない場合にレンガを落下させるには、レンガに物理演算が必要です。
これまでのところ、ドラッグ アンド ドロップに対する私のアプローチは次のとおりです。
for(Brick b : map.getList()){
final Image im = new Image(b.ar);
stage.addActor(im);
im.setPosition(b.posX, b.posY);
im.setOrigin(b.posX, b.posY);
im.addListener((new DragListener() {
public void touchDragged (InputEvent event, float x, float y, int pointer) {
im.setOrigin(x, y);
im.setPosition(x, y);
//System.out.println("touchdragged ---> X=" + x + " , Y=" + y);
}
}));
}
map.getLists には、ペイントするすべてのレンガが含まれています。b.ar はペイントするテクスチャです。
このアプローチで[これ]が起こります。何が原因なのかわからない。
@Override
public void render(float delta) {
spritebatch.begin();
map.getWorld().step(1/60f, 6, 2);
renderer.render(map.getWorld(), camera.combined);
if(Gdx.input.justTouched()){
Vector3 touchPoint = new Vector3(Gdx.input.getX(), Gdx.input.getY(),0);
camera.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
System.out.println(touchPoint);
}
stage.draw();
spritebatch.end();
}
もちろん、オブジェクトをドロップしてその下に何もない場合は、(libgdx のボックス 2D エンジンを使用して) ボディを落下させたいと考えています。
前もって感謝します