Beispiel #1
0
 public static RenderPanel Add(IDrawableSprite sprite)
 {
     if (_curRenderPanel != null){
         _curRenderPanel._sprites.Add(sprite);
     }
     else{
         throw new Exception("no render panel bound");
     }
     return _curRenderPanel;
 }
Beispiel #2
0
        public bool CanSeeSprite(Rect viewBounds, IDrawableSprite sprite)
        {
            if (sprite == null)
            {
                return(false);
            }

            Loc drawSize = sprite.GetDrawSize();

            if (drawSize == new Loc(-1))
            {
                return(true);
            }
            Rect spriteRect = new Rect(sprite.GetDrawLoc(Loc.Zero), drawSize);

            if (spriteRect.Size == Loc.Zero)
            {
                return(false);
            }

            return(Collision.Collides(spriteRect, viewBounds));
        }
Beispiel #3
0
 public void Remove(IDrawableSprite sprite)
 {
     _sprites.Remove(sprite);
 }
Beispiel #4
0
 public int CompareSpriteCoords(IDrawableSprite sprite1, IDrawableSprite sprite2)
 {
     return(Math.Sign(sprite1.MapLoc.Y - sprite2.MapLoc.Y));
 }
Beispiel #5
0
 public void AddToDraw(List <IDrawableSprite> sprites, IDrawableSprite sprite)
 {
     MathUtils.AddToSortedList(sprites, sprite, CompareSpriteCoords);
 }