私はJavaとAndroidを初めて使いました。私は最近、LibGDXを使ってAndroid用のゲームを作成しようとしています。このゲームの1つの側面は、画面の一方の側から他方の側へ(水平方向に)移動する人を含む。これは私のコードです: `インスタント速度の変更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();
}
}
私はまだこのような問題を理解するのに慣れていません。このコードを実行すると、画面の片側(左)から画面の反対側(右端、非表示)に移動します。人は2〜2秒後に(右側から)視界に戻り、画面の反対側に行く(左側に、視界に留まる)。このプロセスが繰り返されます。また、人が移動を開始したときには、フルスピードになるまでには秒を要します。私はif else文を削除し、異なる速度(正と負)の2人を作成して、人が速度を瞬時に変えるという錯覚を作り出しましたが(1人を削除して別の人を産むことによって)、これを行うことができます。
私は、スピードを即座にフルスピードにし、画面の反対側で瞬時に速度を変更し、ループでこのプロセスを続行する方法を知りたいと思います。どんな助けでも大歓迎です。おかげさまで
ありがとうございます!!!!!! –