Example #1
0
        public ArrayList GetSpritesUnderLoc(EPointF a_pnt, int a_nMaxNumSprites)
        {
            ArrayList  aSprites  = new ArrayList();
            SortedList plSprites = new SortedList();
            int        n         = 0;

            GetVisibleOffspringZSorted(ref plSprites, ref n);
            for (int i = plSprites.Count - 1; i >= 0; i--)
            {
                Sprite  sp        = (Sprite)plSprites.GetByIndex(i);
                EPointF pntSprite = sp.ConvRootLocToParentLoc(a_pnt);
                if (sp.Rect == null)
                {
                    continue;
                }

                if (sp.Rect.Contains(pntSprite))
                {
                    aSprites.Add(sp);
                    if (aSprites.Count == a_nMaxNumSprites)
                    {
                        break;
                    }
                }
            }
            return(aSprites);
        }