EtherDuels.Game.Model.SimplePhysicsAlgorithm.UpdatePositions C# (CSharp) Method

UpdatePositions() private method

private UpdatePositions ( GameTime gameTime ) : void
gameTime Microsoft.Xna.Framework.GameTime
return void
        private void UpdatePositions(GameTime gameTime)
        {
            foreach (WorldObject worldObject in worldObjects)
            {
                // limit velocities
                Vector2 velocity = worldObject.Velocity;
                if (velocity.Length() > MAX_VELOCITY)
                {
                    velocity.Normalize();
                    velocity *= MAX_VELOCITY;
                    worldObject.Velocity = velocity;
                }

                // calculate new positions
                Vector2 postion = worldObject.Position;
                postion.X += worldObject.Velocity.X * (float)gameTime.ElapsedGameTime.TotalMilliseconds * 0.01f;
                postion.Y += worldObject.Velocity.Y * (float)gameTime.ElapsedGameTime.TotalMilliseconds * 0.01f;

                // torodial field
                postion.X = postion.X > GameAssets.rightFieldBoundary ? GameAssets.leftFieldBoundary : postion.X;
                postion.Y = postion.Y > GameAssets.lowerFieldBoundary ? GameAssets.upperFieldBoundary : postion.Y;
                postion.X = postion.X < GameAssets.leftFieldBoundary ? GameAssets.rightFieldBoundary : postion.X;
                postion.Y = postion.Y < GameAssets.upperFieldBoundary ? GameAssets.lowerFieldBoundary : postion.Y;

                worldObject.Position = postion;
            }
        }