/// <summary>
        /// Draws the hitboxes.
        /// </summary>
        /// <param name="spritebatch">The spritebatch to use for drawing.</param>
        /// <param name="drawarea">The area of the screen.</param>
        /// <param name="cameramatrix">The camera's transformation matrix. </param>
        /// <param name="texture">The texture used for drawing the hitbox. Should be a 1x1 white pixel.</param>
        public void DrawHitboxes(SpriteBatch spritebatch, Rectangle drawarea, Matrix cameramatrix, Texture2D texture)
        {
            foreach (var entity in GetSortedEntities())
            {
                if (drawarea.Intersects(entity.Hitbox))
                {
                    var xnaentity = entity as XnaEntity;

                    if (xnaentity != null)
                    {
                        xnaentity.DrawHitbox(spritebatch, cameramatrix, texture);
                    }
                }
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="XnaEntity"/> class.
 /// </summary>
 /// <param name="animationcache">The animationcache.</param>
 /// <param name="hitbox">The hitbox.</param>
 /// <param name="spritebatchdata">The spritebatchdata.</param>
 public XnaEntity(AnimationCache animationcache, Rectangle hitbox, SpriteBatchData spritebatchdata)
     : base(animationcache, hitbox)
 {
     SpriteBatchData = spritebatchdata;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="XnaEntity"/> class.
 /// </summary>
 /// <param name="animationcache">The cache holding all the entities animations.</param>
 /// <param name="hitbox">The hitbox that causes interactions with the world.</param>
 public XnaEntity(AnimationCache animationcache, Rectangle hitbox)
     : this(animationcache, hitbox, new SpriteBatchData())
 {
 }