我正在尝试使用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;
}
}
答案 0 :(得分:1)
嗯,有一些细节需要考虑。
1)您应该提供更多有关您问题的信息。
2)game.batch.draw(touchBound, touchCord.x, touch.y);
touch.y
代替touchCord.y
看起来真的很可疑。看看吧。
3)作为如何处理这些位置和纹理大小的函数,您不应该取消投影触摸位置,或者应该相应地指定纹理x。
4)还要记住Y轴的方向。它可能指向上方,你会问错误的坐标是否在里面。
希望它有所帮助。