Ich habe derzeit einen Körper erstellt, der dynamisch ist und bewegt sich mit einer konstanten Geschwindigkeit mit einem Vector2(). Was ich will ist, wenn der Körper den Rand des Bildschirms verlässt, um von diesem aktuellen Punkt sofort zu seinem ursprünglichen Punkt zurück zu kommen. Wie mache ich das?So ändern Sie die Position eines sich bewegenden Körpers - Box2D
a.applyForceToCenter(aMovement, true);
a.applyTorque(3000, true);
FixtureDef fDef = new FixtureDef();
BodyDef ballD = new BodyDef();
ballD.type = BodyType.DynamicBody;
//random location for asteroid
int aLoc = (int) (aLocation * 15);
float x = 300;
switch(aLoc)
{
case 0:
ballD.position.set(x, -105);
break;
case 1:
ballD.position.set(x, -95);
break;
case 2:
ballD.position.set(x, -80);
break;
case 3:
ballD.position.set(x, -65);
break;
case 4:
ballD.position.set(x, -50);
break;
case 5:
ballD.position.set(x, -35);
break;
case 6:
ballD.position.set(x, -20);
break;
case 7:
ballD.position.set(x, -5);
break;
case 8:
ballD.position.set(x, 10);
break;
case 9:
ballD.position.set(x, 25);
break;
case 10:
ballD.position.set(x, 40);
break;
case 11:
ballD.position.set(x, 55);
break;
case 12:
ballD.position.set(x, 70);
break;
case 13:
ballD.position.set(x, 85);
break;
default:
ballD.position.set(x, 0);
}
PolygonShape asteroid = new PolygonShape();
asteroid.setAsBox(12.5f, 12.5f);
//asteroid definition
fDef.shape = asteroid;
fDef.density = .5f;
fDef.friction = .25f;
fDef.restitution = .75f;
a = world.createBody(ballD);
a.createFixture(fDef);
a.setFixedRotation(false);
//asteroid image
aSprite = new Sprite(new Texture("img/asteroid-icon.png"));
aSprite.setSize(12.5f * 4, 12.5f * 4);
aSprite.setOrigin(aSprite.getWidth()/2, aSprite.getHeight()/2);
a.setUserData(aSprite);
asteroid.dispose();
Wie bekomme ich die Position des Körpers? – Mercify
Sie können die Position 'Vector2' des Körpers durch' a.getPosition() 'erhalten. Weitere Informationen über LibGDX/Box2D-Körper finden Sie in diesem [http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/physics/box2d/Body.html] Link. Wie in keiner Antwort erwähnt, kann die Verwendung von 'setTransform' zu Problemen führen. Verwenden Sie diese Methode also auf eigene Gefahr oder um Probleme zu vermeiden, folgen Sie niemandem und erstellen Sie den Körper neu. – user3312130