У меня есть прямоугольное тело, которое стреляет из пушки под углом 45 градусов. Тело также повернуто вверх под углом 45 градусов, и я установил массу в передней части тела.
Тело поднимается в воздух прекрасно, однако, когда тело возвращается на землю, оно не вращается. Есть ли способ, чтобы массовая сторона опускалась первой?
Мой реальный пример — подбрасывание в воздух теннисного мяча с прикрепленной к нему веревкой. В настоящее время струна не отстает от мяча, когда действует гравитация.
Вот мой "мяч"
Body = BodyFactory.CreateRectangle(world, ConvertUnits.ToSimUnits(texture.Width), ConvertUnits.ToSimUnits(texture.Height),100f, postition, this);
Body.Mass = 1;
Body.LocalCenter = new Vector2(ConvertUnits.ToSimUnits(Texture.Width), ConvertUnits.ToSimUnits(Texture.Height / 2));
Body.UserData = this;
Body.BodyType = BodyType.Dynamic;
Body.CollisionCategories = Category.All;
Body.CollidesWith = Category.All;
Body.IgnoreGravity = false;
float ang = BarrelJoint.JointAngle;
Body.Rotation = ang;
Затем я делаю это, чтобы запустить его:
Body.ApplyLinearImpulse(new Vector2((float)Math.Cos(ang) * 100, (float)Math.Sin(ang) * 100));
Я предполагаю, что есть какие-то настройки или расчеты, которые я забыл.