![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2010
Сообщений: 71
|
создаю 2 тела
bodyDef=new b2BodyDef() bodyDef.position.Set(c1.x/30, c1.y/30) boxDef=new b2PolygonDef() boxDef.SetAsBox((c1.width)/30/2, (c1.height)/30/2) boxDef.density=1.5 boxDef.friction=0.5 boxDef.restitution=0.2 bodyDef.userData=c1 body=m_world.CreateBody(bodyDef) body.CreateShape(boxDef) body.SetMassFromShapes() bodyDef=new b2BodyDef() bodyDef.position.Set(c2.x/30, c2.y/30) boxDef=new b2PolygonDef() boxDef.SetAsBox((c2.width)/30/2, (c2.height)/30/2) boxDef.density=1.5 boxDef.friction=0.5 boxDef.restitution=0.2 bodyDef.userData=c2 body=m_world.CreateBody(bodyDef) body.CreateShape(boxDef) body.SetMassFromShapes() соединение должно быть жестким версия 2.0.2 |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
советую посмотреть в сторону b2WeldJoint. Но он мудреный.
Можно обойти используюя b2RevoluteJoint с отключенным вращением. Но в этом коде я не вижу создания двух тел. Точнее оно есть, но обращаться по ссылке можно будет только к одному. Для соединения необходимо определить 2 переменных с типом b2Body, иначе это танцы с бубном |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 71
|
нужен более подробный ответ в коде
1. как определить переменные 2. как создать соединение b2RevoluteJoint соединение должно быть жестким версия 2.0.2 |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
Как создаются шарниры есть в документации, довольно подробно. Я на версии 2.0.2 уже давно ничего не делал. Вот пример для 2.1а var jointDef:b2RevoluteJointDef = new b2RevoluteJointDef(); jointDef.Initialize(_body, _leftTrack, new b2Vec2( _body.GetWorldCenter().x, _body.GetWorldCenter().y) ); _leftTrackJoint = _world.CreateJoint(jointDef) as b2RevoluteJoint; _leftTrackJoint.EnableLimit(true); _leftTrackJoint.EnableMotor(false); |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 71
|
этот код сам писал
почитал доки по 2.0.2 var jointDef:b2RevoluteJointDef = new b2RevoluteJointDef(); jointDef.Initialize(body1, body2, myBody1.GetWorldCenter()); я для этого и написал код на этапе создания тела Последний раз редактировалось provigator; 30.11.2011 в 16:43. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
в моем коде телами являются _body и _leftTrack
достаточно передать их при инициализации шарнира body1 и body2 были ответом на вопрос: Цитата:
|
|
|||||
|
Регистрация: Jul 2010
Сообщений: 71
|
теперь немного прояснилось
не понятно как определить переменную и привязать к телу на этапе создания тела этот момент поясни, я для этого и написал скрип создания двух тел |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
в первом блоке, и:
во втором |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 71
|
да!!!
Последний раз редактировалось provigator; 30.11.2011 в 18:33. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
эта ошибка не имеет к бокс2д ни малейшего отношения.
Надо было определить переменную перед тем, как ее использовать п.с. пиши код с пробелами, по крайней мере на форуме. Напрягает читать когда все слеплено в кучу |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:09. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|