我使用以下代码将用户触摸与球对象的位置相匹配,因此当用户触摸球时它会反弹回来。代码:
int x1 = Gdx.input.getX();
int y1 = Gdx.input.getY();
Vector3 input = new Vector3(x1, y1, 0);
cam.unproject(input);
if(ball.getBoundingCircle().contains(input.x, input.y)) {
ballBounce();
}
但我的触摸有问题。如果用户触摸屏幕上的某个位置片刻并且球(稍后出现一段时间)即将到达用户触摸的位置,则球将识别自己被触摸并且球弹跳();方法将开始并继续其他球到达相同的位置,直到用户触摸屏幕上的另一个位置,但然后该位置将被修复,直到新的...有人知道如何绕过该问题,所以如果用户停止触摸屏幕然后他触摸的地方不会影响球对象?
答案 0 :(得分:1)
您似乎没有使用任何输入处理器。 让你的类实现InputProcessor并使你的touchDown方法看起来像这样。
@Override
touchDown(InputEvent event, float x, float y, int pointer, int button) {
Vector3 input = new Vector3(x, y, 0);
cam.unproject(input);
if (ball.getBoundingCircle().contains(input.x, input.y)) {
ballBounce();
}
}