我正在尝试使用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)您应该提供有关您的问题的更多信息。
2)用game.batch.draw(touchBound, touchCord.x, touch.y);
而不是touch.y
的touchCord.y
看起来真的很可疑。一探究竟。
3)根据如何处理这些位置和纹理大小,您不应该取消投射触摸位置,或者应该相应地分配纹理x。
4)还要记住Y轴的方向。它可能朝上,您会问触摸是否在坐标内,坐标错误。
希望能帮助到你。