Jbox2d Проблемы с позиционированием платформ - PullRequest
0 голосов
/ 03 ноября 2018

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

    // creating all the bodies
    BodyDef bdef = new BodyDef();
    bdef.position.set(x, y);
    bdef.type = BodyType.STATIC;
    Body body = world.createBody(bdef);

    PolygonShape shape = new PolygonShape();
    shape.setAsBox(width, height);      
    FixtureDef fdef = new FixtureDef();
    fdef.friction = 0.3f;
    fdef.shape = shape;
    body.createFixture(fdef);

Это общий код, который используется для создания каждого тела на карте. Тела работают нормально, но они не совпадают ни с шириной, ни с координатами карты, которую я установил. Я заметил, что должен указать нижнюю левую точку в качестве отправной точки для создания тела, но что еще мне не хватает? Почему тела имеют тенденцию быть больше и проходить начальную точку X и Y?

1 Ответ

0 голосов
/ 02 апреля 2019

Тела в box2d сделаны из их центральных точек. Когда вы определяете его положение, вы устанавливаете его центр, а когда вы определяете его ширину / высоту, вы фактически устанавливаете половину ширины / высоты (т. Е. Размер в два раза больше, чем вы предполагали).

...