Я новичок в Java и Android. Недавно я пытался создать игру для Android с помощью LibGDX. Один из аспектов этой игры включает в себя перемещение человека с одной стороны экрана на другую (по горизонтали). Это мой код для человека: `Мгновенное изменение скорости LibGDX
public class Man {
private static final int SP = 10;
private static final int NSP = -10;
private Vector3 position;
private Vector3 velocity;
private Texture man;
public Man(int x, int y){
position = new Vector3(x, y, 0);
velocity = new Vector3(0, 0, 0);
man = new Texture ("person.png");
}
public void update(float dt){
if (position.x > 2560) {
velocity.add(NSP, 0, 0);
}
else {
velocity.add(SP, 0, 0);
}
velocity.add(SP, 0, 0);
velocity.scl(dt);
position.add(velocity.x, 0, 0);
velocity.scl(1/dt);
}
public Texture getTexture() {
return man;
}
public Vector3 getPosition() {
return position;
}
public void dispose(){
man.dispose();
}
}
Я до сих пор не привык к решению таких проблем. Когда я запускаю этот код, человек идет с одной стороны экрана (слева) и мимо другой стороны экрана (справа, вне поля зрения). Через секунду или два человек возвращается в поле зрения (с правой стороны) и идет на другую сторону экрана (слева, и остается в поле зрения). Затем этот процесс повторяется. Кроме того, когда человек начинает двигаться, ему требуется секунда, чтобы добраться до полной скорости. Я попытался удалить инструкции if else и создать 2 человека с разными скоростями (один с положительным и один с отрицательным), чтобы создать иллюзию, что человек мгновенно меняет скорость (удаляя одного человека и не создавая другого), но я не был в состоянии сделать это.
Я хотел бы знать, как я мог заставить человека мгновенно добраться до полной скорости, мгновенно изменить скорость на другой стороне экрана и продолжить этот процесс в цикле. Любая помощь приветствуется. Спасибо.
Спасибо !!!!!! –