Я хочу создать игру, в которой вы можете создавать вещи, перетаскивая объекты на место. Я думаю, что LibGDX поддерживает DragNDrop только для актеров, но мне нужна физика на кирпичах, чтобы они падали, если конструкция нестабильна.Drag And Drop LibGDX
До сих пор, мой подход к перетащить и падение:
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 - текстура для окрашивания.
С этим aproach [this] - это то, что происходит. Я не знаю, что может быть причиной этого.
@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();
}
Конечно я хотел бы сделать тело упало (с коробкой 2d двигателя от libgdx), если вы уронили объект, и это не имеет ничего под ним.
Заранее спасибо
Большое спасибо! Только для записи это окончательный код: 'code'im.addListener ((новый DragListener() { \t \t \t общественного недействительного touchDragged (InputEvent события, поплавок х, поплавок у, внутр указатель) { \t \t \t \t поплавок дх = х-im.getWidth() * 0.5f; \t \t \t \t поплавка ду = у-im.getHeight() * 0.5f; \t \t im.setPosition (im.getX() + дх, im.getY() + dy) \t \t \t \t \t \t})); – yafrack