Naja, du wirkst deine Force halt über einen kleinen Zeitraum. Wenn du die Taste kurz antippst sind das ein paar Frames. Eine Kraft wirkt über Zeit und kumuliert Energie, d.h. hier Geschwindigkeit. Sie unterscheidet sich ja nur durch die Masse von einer Beschleunigung, da die Masse hier konstant ist können wir die Kraft als Beschleunigung sehen. Ich nehme mal an das hat ungefähr folgendermaßen stattgefunden:
1. Force 850 von dir gewirkt.
2. Bisher kumulierte Geschwindigkeit durch setLinearVelocity(0,0) resettet.
3. Später im Frame berechnet die Physik-Engine die dauer des Frames und die dadurch entstande Geschwindigkeit und wendet sie an.
4. Bewegung des Objektes wird berechnet / neue Position (evtl. im gleichen Schritt wie 3, die Architektur ist mir völlig unbekannt)
5. weiter mit 1.
Da die Force nur einen Bruchteil einer Sekunde gewirkt hat, hast du eine sehr große Kraft benötigt um jeden Frame genug Geschwindigkeit aufzubauen, da sie im nächsten Frame wieder resettet wird. Dazu ist es nötig, dass die Positionsberechnung direkt nach dem Setzen der Kraft geschieht, oder dass die neue Geschwindigkeit erst nach beenden deiner Methode aus der Kraft errechnet wird, sonst hättest du nämlich keine Bewegung gehabt, da dein velocity reset auch die neue Kraft annulliert hätte.