2012-04-02 12 views
0

ich mit diesem Code, um einen Körper mit der Physik-Engine zu positionieren versuchen:AndEngine Position ein Körper

   float touchX = pp[0]; 
       float touchY = pp[1]; 
       float diffX = touchX - mBody.getPosition().x; 
       float diffY = touchY - mBody.getPosition().y;     
       mBody.setLinearVelocity(new Vector2((pp[0])/PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT , (pp[1])/PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT)); 

Die X- und Y-Koordinaten aus einer TMX Fliese Karte und sind 32 Pixel im Quadrat, Ich versuche, Holen Sie sich den Körper in der Physik-Engine, um zu bestimmten Kacheln in einer Kachelkarte zu gelangen (die im pp [] -Array gehalten wird), aber stattdessen bewegt er sich auf einen zufälligen chaotischen Pfad. Ist dies der richtige Ansatz, um X, Y-Koordinaten zu konvertieren und zu diesem Punkt zu gelangen? Dank

Antwort

1

.setLinearVelocity bewegt Körper nicht auf bestimmte Position. Um dies zu tun, müssen Sie .setTransform verwenden

+0

Danke für die Antwort - Ich habe versucht, SetTransform() was funktioniert, aber mit einer Reihe von Koordinaten bewegt es den Körper zu schnell – ITECH

0

.setLinearVelocity ist wie Sie fügen Kraft auf den Körper und machen es zu bewegen, so dass es nicht auf die Position, die Sie wollen.

.setTransform ist wie Sie die Position des Körpers einstellen. Es bewegt sich also nicht langsam von A nach B, sondern verschwindet von A und erscheint plötzlich bei B

Sie können es langsam durch Code selbst bewegen.

Verwandte Themen