2016-05-21 13 views
0

Ich bin kürzlich in Libgdx gesprungen. Mein Otouch funktioniert nur halb; Ich weiß, dass die Berührung erkannt wird, wie wenn ich die unten ausgeführt:Libgdx Zeichenbewegung

@Override 
    public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true); 

     return true; 
    } 

Mein Charakter nach rechts läuft, so dass meine auf Touch beweisen, ist es richtig einzurichten und erkannt wird.

Das Problem, das ich habe, ist, das Zeichen zu bekommen, um nach links oder rechts zu laufen, abhängig davon, wo auf dem Bildschirm der Benutzer aufsetzt. Wenn der Benutzer nach rechts drückt, muss sich das Zeichen nach rechts bewegen, und wenn es nach links von dem Zeichen drückt, sollte es sich nach links auf der X-Achse bewegen. Was ich geschrieben habe, dies zu tun ist unten:

@Override 
public boolean touchDown(int X, int Y, int pointer, int button) { 

// player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true); 
    if( player.getX()> X){ 
     player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true); 
    } 

    else if( player.getX()< X){ 
     player.b2body.applyLinearImpulse(new Vector2(-5.1f, 0), player.b2body.getWorldCenter(), true); 
    } 
    return true; 
} 

Aber mit meinem Code nicht mein Charakter nicht bewegt, nehme ich an ich bin Überprüfung der Position Spieler falsch. Kann mir bitte jemand mitteilen, was/wie mache ich das falsch?

Antwort

0

Touch-Positionen werden in Bildschirmkoordinaten angegeben. Dein Player existiert in den von dir erstellten Weltkoordinaten. Sie müssen Camera.unproject verwenden, um mithilfe der Kamera von Bildschirmkoordinaten in Weltkoordinaten zu konvertieren.

+0

Das ist das, für jeden anderen, der Probleme hat, benutzte ich die unten, um meine Bewegung zu beheben: http://gamedev.stackexchange.com/questions/72448/how-to-match-user-click-and-the -sprite-Objekt-Position-in-libgdx-Framework – Phil3992