LibGDX拖动纹理

时间:2014-11-10 22:45:42

标签: java libgdx game-physics

我正在尝试使用LibGDX和Java,如果他们的手指触摸另一个纹理,我希望根据用户的手指位置沿x轴移动纹理。下面是我的代码,只有在将手指向右移动时才有效

game.batch.begin();
game.batch.draw(userCar, carCord.x, carCord.y);
game.batch.draw(touchBound, touchCord.x, touchCord.y);
game.batch.end();

if (Gdx.input.isTouched()) {
    Vector3 touchPos = new Vector3();
    Rectangle textureBounds=new Rectangle(touchCord.x,touchCord.y,touchCord.width,touchCord.height);
    touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
    camera.unproject(touchPos);
    if(textureBounds.contains(touchPos.x,touchPos.y) {
        carCord.x = touchPos.x;
    }
}

1 个答案:

答案 0 :(得分:1)

嗯,有一些细节需要考虑。

1)您应该提供更多有关您问题的信息。

2)game.batch.draw(touchBound, touchCord.x, touch.y); touch.y代替touchCord.y看起来真的很可疑。看看吧。

3)作为如何处理这些位置和纹理大小的函数,您不应该取消投影触摸位置,或者应该相应地指定纹理x。

4)还要记住Y轴的方向。它可能指向上方,你会问错误的坐标是否在里面。

希望它有所帮助。