I have been trying to make a box2d body move along a Bezier curve/ arc path. Most of the posts I've seen recommend an approach of manipulating SetLinearVelocity and SetTransform to arrive at an arc-like movement. I don't think testing linear velocity values on a try and error basis would help. I would appreciate any help solving this problem. Thanks.
If you don't need to worry about stuff running into it simply use
If you do then make sure its a kinematic body so its not bumped off course. You should know the time delta the physics engine is going to be updated by. So we can use that to find a direction and velocity that will cause us to be where we want to be after the step has occurred.
I haven't slept in about 24 hours so hopefully I have this right.
Vector3 travelThisStep = (Target - Body.GetPosition()); //How much we need to travel to arrive at our destination float velocity = travelThisStep.Lenght() / TimeStep; //Distance to travel / Time to travel said distance travelThisStep.normalize(); Vector3 velocity = travelThisStep * velocity; Body.SetLinearVelocity(velocity); World.Step(TimeStep);