我想制作一个游戏,您可以通过将对象拖放到适当的位置来构建东西。我认为 LibGDX 仅支持对 Actors 的 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 是要绘制的纹理。
使用这种方法[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();
}
当然,如果你放下物体并且它下面没有任何东西,我想让身体下降(使用 libgdx 的 box 2d 引擎)。
提前致谢