Задать вопрос
@Hakito

Почему кружок подпрыгивает на стыках?

Делаю игрушку с использованием библиотеки dyn4j
на экране есть статические отрезки, которые размещены "стык в стык". Красными точками отмечены границы отрезков. Также есть круг, который катится по этим отрезкам.
6f2dcd6efc3942fdb314e09121506a96.png
Проблема в том, что на стыках шарик подпрыгивает, будто там какая-то кочка, хотя координаты начала отрезка и конца предыдущего совпадают.
Как это устранить?

Далее приведены характеристики объектов:
public void createWorld()
    {


        worldCreated=true;
        world = new World();


        world.setGravity(new Vector2(0, 0.04));

        ball = new Ball();
        ball.translate(0.3, 0.01);
        Convex convex=new Circle(0.1);
        BodyFixture fixture = new BodyFixture(convex);
        fixture.setDensity(1);

        fixture.setRestitution(0.1);
        fixture.setFriction(20);
        ball.addFixture(fixture);
        ball.setMass(MassType.NORMAL);

        world.addBody(ball);

        addLine(0, 0.4, 1.5, 0.5);
        addLine(0, 0.5, 15, 0.5);



    }

    void addLine(double ax, double ay, double bx, double by)
    {
        Segment segment = new Segment(new Vector2(0, 0), new Vector2(bx-ax, by-ay));
        Body ground = new Body();
        ground.translate(ax, ay);
        BodyFixture gf = new BodyFixture(segment);
        gf.setRestitution(0.1);
        gf.setFriction(50);


        ground.addFixture(gf);
        ground.setMass(MassType.INFINITE);


        world.addBody(ground);
    }
  • Вопрос задан
  • 476 просмотров
Подписаться 2 Оценить 4 комментария
Решения вопроса 1
@Hakito Автор вопроса
Нашел проблему.
Все дело было в настройках точности движка. Написал:
world.getSettings().setLinearTolerance(0.0001);
и все заработало)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
я не знаю что там в либе dyn4j, но можно сделать проще:
Сначала создать ландшафт и УЖЕ ПОСЛЕ сделать его единым физическим телом.
Возможно, что проблема в поведении "движка": выталкивания вверх при коллизии объекта с краем платформы.
Ответ написан
@GreatRash
Откройте для себя p2.js.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы