|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 14
|
вообщем все оказалось гораздо проще)
|
|
|||||
А я пользуюсь m_linearVelocity
P.S.:Мне легче использовать простые x, y без приминения b2Vec2 |
|
|||||
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 14
|
Сенсоры
Еще задача) Я хочу запретить телам одной группы толкать друг друга. Знаю что это можно сделать с помощью фильтров и сенсоров. Так вот я не могу сделать так, чтоб сенсор двигался точно за телом, он постоянно отстает) если задать ему mySensor.SetPostion(x,y). Я попыталась придать ему скорость и затухание как у героя, но тогда он вообще живет своей жизнью, потому как столкновения не обрабатываются.
В идеале мне нужно реализовать поведение, где объекты с разной скоростью не будут толкать друг друга, а просто обходить стороной. Для этого я как раз и хотела использовать сенсор. Может кто уже делал подобное? |
|
|||||
Лучше джоинтом привязать, а не позишн подганять. Связываете центр тела и центр сенсора и не паритесь.
Добавлено через 8 минут Это мой код. Он правда написан на 2.0.2, но думаю разобраться можно. private var cart : b2Body;//основное тело private var hoover :b2Body;//сенсор //************************ var bodyDef : b2BodyDef; var circleDef : b2CircleDef; var revoluteJointDef : b2RevoluteJointDef; bodyDef.position.Set(cartX + 2.8, cartY - 1);//cartX, cartY - это х,у основного тела в момент привязки. circleDef.radius = 0.6; circleDef.isSensor = true; circleDef.density = 0.000001;//сенсор тоже вес имеет посему я ему такую плотность поставил, //чтоб не влиял на физику самой модели. circleDef.friction = 0; hoover = world.CreateBody(bodyDef); hoover.CreateShape(circleDef); hoover.SetMassFromShapes(); var hooverJoint:b2RevoluteJoint; revoluteJointDef.enableMotor = false; revoluteJointDef.Initialize(cart, hoover, hoover.GetWorldCenter()); hooverJoint = world.CreateJoint(revoluteJointDef) as b2RevoluteJoint;
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 14
|
ага) меня как раз осенило)) люблю порой правой пяткой левое ухо чесать
спасибо за ответ |
|
|||||
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 14
|
поворот тела
Застряла на поворотах) пытаюсь наделить объект "зрением" и чтобы он обходил препятствия задолго до столкновения)), то есть когда срабатывает сенсор, я нахожу вектор столкновения, потом уже нахожу под каким градусом это произошло и хочу смоделировать так, чтоб тело отклонялось на n-радиан и обходило препятствие. но у меня не получается сделать плавный поворот на цель, просто присвоить радианы да, а чтоб красивенько повернулось нет.
спасибо за любой ответ) |
|
|||||
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 14
|
я пытаюсь использовать угловую скорость для этих целей
_body.SetAngularVelocity(angle); _body.SetAngularDamping(d); я хочу в дальнейшем моделировать поведения разных объектов к примеру: обход препятствий, преследование, избегание. Я понимаю что за это все должен отвечать другой класс и так и есть, но я не знаю как это адаптировать под радианы, потому как реакции и поведение строятся на векторах и градусах, но движок работает с радианами. А с atan2() какая-то неувязка получается... потому ищу совета в этом направлении, конвертировать ли все в градусы, а потом обратно или есть еще какие особенности... я совсем новичок, вы уж простите за глупые вопросы)) |
Часовой пояс GMT +4, время: 21:33. |
|
« Предыдущая тема | Следующая тема » |
|
|