Проблема с гравитацией в андроиде Android

Я пытаюсь написать простую игру, которая включает в себя спрайт игрока и препятствия. Я реализовал физику мира с гравитацией. Я хотел бы, чтобы при падении спрайта игрока он находился рядом с препятствием, откуда он падает, но с силой тяжести спрайт падает по диагонали, а не прямо вниз.

mPhysicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_EARTH), false);
...

public Player(PhysicsWorld world, final float pX, final float pY, final TiledTextureRegion pTextureRegion,
        final VertexBufferObjectManager pVertexBufferObjectManager)
{
    super(pX, pY, pTextureRegion, pVertexBufferObjectManager);

    mPlayerDeff = PhysicsFactory.createFixtureDef(0, 0, 0);

    mVertexBuffer = pVertexBufferObjectManager;
    mBoardManager = BoardManager.getInstance();
    mDirection = DIRECTION_RIGHT;

    mWorld = world;

    mBody = PhysicsFactory.createBoxBody(mWorld, this, BodyType.DynamicBody, mPlayerDeff);
    mWorld.registerPhysicsConnector(new PhysicsConnector(this, mBody, true, false));

}

текущее состояние и разыскиваемое состояние

1 ответ

Вы можете попытаться установить массовые данные для вашего тела:

MassData mass = new MassData();
mass.mass = 10; // in kilograms

mBody.setMassData(mass);
Другие вопросы по тегам