Ich bin neu in Java und Android. Ich habe kürzlich versucht, ein Spiel für Android mit LibGDX zu erstellen. Ein Aspekt dieses Spiels beinhaltet eine Person, die sich von einer Seite des Bildschirms zum anderen (horizontal) bewegt. Das ist mein Code für die Person: `Instant Geschwindigkeitsänderung 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();
}
}
Ich bin immer noch nicht daran gewöhnt, Probleme wie diese herauszufinden. Wenn ich diesen Code ausführe, geht die Person von einer Seite des Bildschirms (links) und über die andere Seite des Bildschirms (rechte Seite, außerhalb der Sicht). Nach ein oder zwei Sekunden kommt die Person wieder in Sicht (von der rechten Seite) und geht auf die andere Seite des Bildschirms (nach links, bleibt in Sicht). Dieser Vorgang wiederholt sich dann. Wenn die Person sich zu bewegen beginnt, braucht sie eine Sekunde, um die volle Geschwindigkeit zu erreichen. Ich habe versucht, die if else-Anweisungen zu entfernen und 2 Personen mit unterschiedlichen Geschwindigkeiten zu erstellen (eine mit positiver und eine mit negativer), um die Illusion zu erzeugen, dass der Mann die Geschwindigkeit sofort ändert (indem er eine Person entfernt und eine andere hervorbringt), aber ich war es nicht dazu in der Lage.
Ich würde gerne wissen, wie ich die Person dazu bringen konnte, sofort die volle Geschwindigkeit zu erreichen, die Geschwindigkeit sofort auf der anderen Seite des Bildschirms zu ändern und diesen Prozess in einer Schleife fortzusetzen. Jede Hilfe würde sehr geschätzt werden. Danke.
Vielen Dank !!!!!! –