/// <summary> /// /// </summary> /// <param name="dt"></param> public override void Update(float dt) { base.Update(dt); if (PhysicsBody != null) { if (IsPositionCorrection) { var diffTime = CorrectionTime - UpdateTime; var ratio = 1 - (diffTime / Constant.UPDATE_RATE_SECOND); var interpolation = CCPoint.Lerp(new CCPoint(PhysicsBody.Position.x, PhysicsBody.Position.y), new CCPoint(CorrectionX, CorrectionY), ratio); PhysicsBody.SetTransform(new b2Vec2(interpolation.X, interpolation.Y), PhysicsBody.Angle); } } }