Итак, у меня есть класс, который обрабатывает пользовательский ввод на экран, созданный как часть приложения libgdx. Моя проблема в том, что переменная cameraDelta, которая является Vector2, по-видимому, имеет другое значение в keyTyped и getCameraDelta.
при использовании sys.out.println во время выполнения в обоих методах показывает значение, изменяющееся всякий раз, когда любой из ' wasd ', и значение остается в течение некоторого времени, однако значение всегда остается равным (0, 0) при выводе из getCameraDelta
public class InputHandler implements InputProcessor {
private Firetruck myTruck;
private GameWorld myWorld;
private int mouseX;
private int mouseY;
private Vector2 cameraDelta;
public InputHandler(GameWorld myWorld) {
this.myWorld = myWorld;
myTruck = myWorld.getFiretruck();
cameraDelta = new Vector2(0, 0);
}
@Override
public boolean keyDown(int keycode) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyUp(int keycode) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean keyTyped(char character) {
if (character == 'w') {
cameraDelta.add(0, 5);
} else if (character == 's') {
cameraDelta.add(0, -5);
} else if (character == 'd') {
cameraDelta.add(5, 0);
} else if (character == 'a') {
cameraDelta.add(-5, 0);
}
return false;
}
public Vector2 getCameraDelta() {
/*/
Vector2 temp = this.cameraDelta.cpy();
/*/
Vector2 temp;
temp = new Vector2(0, 0);
temp.add(cameraDelta);
Gdx.app.log("getCameraDelta", cameraDelta.toString());
cameraDelta.x=0;
cameraDelta.y=0;
return temp;
}