2016-09-22 7 views
0

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); 

} 
+0

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); } } –

+0

Sie verwenden Ihre Texturregion (ein Asset), um den Playerstatus zu speichern? Ich schlage vor, dass Sie das vermeiden - es ist Spaghetti-Code. – Tenfour04

+0

Ich bin jetzt nicht so gut darin und benutze Tutorials, deshalb ist mein Code so. –

Antwort

0

Was ist die 0,5 für? Auf eine Mindestgeschwindigkeit prüfen? Wenn ja, hast du dort wahrscheinlich die Zeichen falsch verstanden.

if (keycode == Input.Keys.A) { 
     if (player.b2body.getLinearVelocity().x >= 0.5) { 
     SpinDashleft(); 
     return true; 
     } 
     if (player.b2body.getLinearVelocity().x <= -0.5) { 
     SpinDashright(); 
     return true; 
     } 
    } 
+0

Ja, ist es. Ich habe versucht, sie zu ändern, aber es ist nicht mein Problem zu lösen, nur die Richtung, in der Olayer bewegen sich sowieso. –

+0

Was passiert, wenn Sie einfach < and > 0 verwenden? –

+0

Wenn ich es benutze - Spieler ist überhaupt nicht mooving. –