2012-05-17 2 views
4

Я постепенно пытаюсь развернуть свою голову вокруг Box2dWeb, как только вы окунетесь в основы, он, кажется, очень полезен довольно быстро, и это здорово. Я могу имитировать эффект сердитых птиц, бросая объекты через страницу и в структуры. Я черпаю вдохновение в великолепных обучающих программах box2d от Seth Ladd и пытаюсь их адаптировать, поэтому я могу создать редактор уровней, где я могу начать создавать мини-прокручивающие игры. НО ... я упал при первом препятствии .....Box2dWeb Револьверный сустав, падающий сквозь землю

Мое восходящее соединение видно в отлабе (голубая линия между двумя телами). Однако, когда он падает к полу, сам сустав, похоже, продолжает падать (с холста), когда сами тела сталкиваются и останавливаются на земле. Как будто они фактически не связаны друг с другом вообще.

Может кто-нибудь объяснить, что именно я делаю неправильно?

Вы можете найти урезанную версию по адресу:

www.g-mccann.co.uk/box2d

Обратная связь очень ценится, я учусь так быть так критично, как вам нравится.

Большое спасибо, Gary

Редактирование: 23/05/2012

Только для обновления я теперь сортируется вопрос, казалось, не должно быть никаких приспособлений, присоединенные к любой из органов. (Спасибо iforce2d) Я поднял ваш комментарий, но, похоже, не согласен с ним, я бы принял ответ.

+0

задайте более конкретный вопрос – jazzytomato

+0

Привет, Томас, спасибо за ваш ответ. Я не могу быть более конкретным. Я не понимаю, почему суставы не работают, поскольку они, кажется, отображаются при отладке в правильном месте, а просто падают сквозь землю, когда тела ударяются об изъяны. – Gary

+1

Судя по тому, что ни один из тел вашего примера не ведет себя так, как будто они соединены вместе, я бы предположил, что сустав соединяет другой набор тел без приспособлений. – iforce2d

ответ

2

Ваша проблема может быть решена с помощью функции CreateJoint.

Я изучил ваш сценарий, добавив, что нашел решение, добавив только эту строку в вашу функцию init.

box.addRevoluteJoint("wheel3","chassis", {motorSpeed: -2, maxMotorTorque: 10}); 

Я надеюсь, что это может решить вашу проблему.

1

Я смотрю, что ваше соединение - это соединительные элементы без приспособлений.

0

Для создания револьвного сустава вам необходимо добавить два тела, один из которых является статическим, а другой - динамическим. динамическое тело прикрепляется к статическому телу в точке с использованием револьвного соединения и заставляет его вращаться или перемещаться, применяя motorSpeed ​​и maxTorque после включения enableMotor. Для рабочих примеров см. Эту игру, в которой используется множество революционных суставов для ее создания. http://pixsansar.com/jumping-and-puzzle-ball-level1

+1

Революционные соединения не обязательно должны быть статическими, они оба могут быть динамическими. – martyman

Смежные вопросы