Я хочу создать веревку, которая может сталкиваться с объектами, как в следующем видео на YouTube:
Я думаю, что вы реализуете интеграцию верлетов, которая использует точки и соединяет эти точки линиями. Я пытаюсь выяснить, какой тип обнаружения столкновения вы примените к веревке, чтобы получить эффект в видео.
Я думаю, что вам придется сделать несколько компакт-дисков для каждой точки. Я хотел бы использовать box2D, поэтому мне интересно, чтобы каждая точка работала с твердым телом? Любой совет будет принят во внимание.
collision-detection
box2d
rope-physics
Джои Грин
источник
источник
Ответы:
Поскольку вы используете Box2D, вы можете создать серию прямоугольников и использовать соединения Box2D для их соединения. Там у вас есть веревка.
Чтобы избежать высовывания углов из изогнутой веревки, я могу представить два варианта:
Предупреждение: я никогда не пробовал это сам, но я не вижу, как ряд соединенных прямоугольников может потерпеть неудачу, когда видео, которое вы разместили, отображает практически то же самое в скрытой форме.
Изменить: я только что видел PaulZ, и я понял то же самое. Иди прочитай его комментарий по этому вопросу.
источник
Быстрый Google бросил это здесь . Демонстрация, описание и код (во Flash) с использованием Box2D для реализации простой веревки. Веревка сталкивается с собой и блоком в верхней части сцены.
источник
Вот что я хотел бы сделать, сделать каждую точку на окружности кругом, сделать так, чтобы окружности перекрывались. Привязывайте каждую точку к своему соседу, а не к обычному столкновению. Эта привязь должна удерживать точки на фиксированном расстоянии друг от друга.
Я не знаю Box2D, но я предполагаю, что необходимая функциональность есть.
источник
Изначально у Box2D была демонстрация веревочного моста, сделанная из тонких коробок, соединенных с ограничениями точка-точка; это было бы хорошим местом для начала (я не знаю, будет ли оно все еще выпущено с этой демонстрацией, но было бы просто воссоздать его).
Достаточно просто реализовать веревку в виде частиц с ограничениями расстояния независимо от симулятора твердого тела (как вы упоминаете, используя схему интеграции и решения ограничений Verlet, подобную той, которая описана в этой статье: http://www.gamasutra.com/resource_guide/ 20030121 / jacobson_pfv.htm ), но если вы хотите, чтобы твердые тела реагировали на вашу веревку (как в видео, с висящей коробкой), то это становится намного сложнее. Я бы начал с всеобъемлющего набора инструментов, таких как Box2D, и работал бы задом наперед, а не пытался бы строить из частиц.
источник
Я помню эту игру Allegro: Cupid , от SpeedHack 2002. Она содержит реализацию веревок, которые сталкиваются с пейзажем. См. Классы PhysParticles и HeartTrails в файле heart_tails.cpp в его исходном коде .
источник