Ich habe diese if-Anweisung in meinem LibGDX-Spiel. Das Problem ist, dass mein Spieler nach links schaut, er bewegt sich in die linke Richtung, was korrekt ist, aber wenn er in die richtige Richtung watschelt, bewegt er sich trotzdem nach links. Wie kann ich dieses Problem lösen?LibGDX Probleme mit if
public boolean keyUp(int keycode) {
if (keycode == Input.Keys.A && player.b2body.getLinearVelocity().x >=-0.5) {
SpinDashleft();
return true;
}
else if (keycode == Input.Keys.A && player.b2body.getLinearVelocity().x <=0.5) {
SpinDashright();
return true;
}
return false;
}
public void SpinDashleft() {
player.b2body.applyLinearImpulse(new Vector2(-7.1f, 0), player.b2body.getWorldCenter(),true);
}
public void SpinDashright() {
player.b2body.applyLinearImpulse(new Vector2(7.00f, 0), player.b2body.getWorldCenter(),true);
}
Das Problem ist gelöst! Es nedds wie diese public void SpinDash() { if ((player.b2body.getLinearVelocity(). X <= 0.5) &&! Player.region.isFlipX()) { player.b2body sein .applyLinearImpulse (neuer Vector2 (0.9f, 0), player.b2body.getWorldCenter(), true); } sonst if ((player.b2body.getLinearVelocity(). X> = - 0.5) && player.region.isFlipX()) { player.b2body.applyLinearImpulse (neuer Vector2 (-0.9f, 0), Spieler .b2body.getWorldCenter(), true); } } –
Sie verwenden Ihre Texturregion (ein Asset), um den Playerstatus zu speichern? Ich schlage vor, dass Sie das vermeiden - es ist Spaghetti-Code. – Tenfour04
Ich bin jetzt nicht so gut darin und benutze Tutorials, deshalb ist mein Code so. –