Сравнительное объектно-ориентированное проектирование - 39 стр.

UptoLike

Составители: 

39
/// Спрайт - плоский графический объект, занимающий прямоугольную область экрана.
/// Каждый спрайт списка принадлежит как-бы отдельной
/// изображающей плоскости экрана - z-слою.
/// Каждый спрайт списка имеет свое значение z - индекс спрайта в списке.
/// Ось z направлена перпендикулярно экрану по направлению к наблюдателю.
/// Единственным параметром конструктора класса SpriteList является
/// объект типа Control.
/// Объект Control ограничивает область перемещения спрайтов списка и
/// создает объект класса Graphics для изображения спрайта.
/// При перерисовке объекта Control или его уничтожении список очищается.
/// Каждый спрайт списка создается методом Add, параметрами которого являются
/// тип класса спрайта и занимаемый спрайтом прямоугольник.
/// Метод Add возвращает экземпляр созданного спрайта.
/// Прямоугольник спрайта должен полностью принадлежать прямоугольнику
/// объекта Control.
/// Списку могут принадлежать спрайты разного типа -
/// наследники абстрактного класса Sprite.
/// Метод RemoveSpriteAt удаляет из списка спрайт, принадлежащий конкретному слою.
/// Метод Clear удаляет все спрайты из списка.
/// Метод MoveSprite перемещает спрайт из одного слоя в другой.
/// Элементы списка доступны через индексы с нулевой базой.
/// </remarks>
public class SpriteList
{
/// <summary>
/// Хранит ссылку на объект типа Graphics для изображения спрайтов.
/// </summary>
Graphics canvas;
/// <summary>
/// Возвращает ссылку на объект типа Graphics для изображения спрайтов.
/// </summary>
// Так описываются свойства в C#. Модификатор доступа internal ограничивает
// доступ к члену класса тем исполняемым модулем, в котором этот член описан.
internal Graphics Canvas { get { return canvas; } }
/// <summary>
/// Хранит ссылку на Control, с которым связан список спрайтов.
/// </summary>
Control parent;
/// <summary>
/// Возвращает ссылку на Control, ограничивающий спрайты списка.
/// </summary>
internal Control Parent { get { return parent; } }
/// <summary>
/// Хранит ссылку на клиентский прямоугольник объекта Control.
/// </summary>
Rectangle clientRect;
/// <summary>
/// Возвращает ссылку на клиентский прямоугольник объекта Control.