Beispiel #1
0
        /// <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);
                }
            }
        }