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

UptoLike

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

5
function AddSprite(const aSpriteClass:TSpriteClass;
const SpriteRect:Types.TRect):TSprite;
// Перемещает спрайт внутри списка в z-направлении (с одного слоя в другой)
procedure MoveSprite(const fromZ,toZ:integer);
// Удаляет спрайт с индексом aZ (слой) из списка
procedure DeleteSprite(const aZ:integer);virtual;
// Очищает список от указателей на спрайты
procedure Clear;virtual;
end;
// Тип обработчика события, наступающего перед смещением спрайта
OnMoveEvent=function(Sender:TSprite;var NewLocation:Types.TPoint):
Boolean of object;
// Абстрактный класс спрайта регулирует изображение и перемещение спрайта.
// Изображению спрайта на канве предшествует сохранение в памяти фона,
// который перекрывается изображением.
// Требуемый участок фона сохраняется в объекте типа TBitmap.
// Изображение спрайта исчезает в момент восстановления фона
// обратного копирования на канву сохраненного участка.
TSprite=class(TObject)
private
// Поля
// Хранит состояние видимости спрайта
FVisible: boolean;
// Хранит номер слоя, занимаемого спрайтом
FZ: integer;
// Хранит маску - наличие пересечений с одним из выше лежащих спрайтов
FMask: boolean;
// Хранит ссылку на список, которому принадлежит спрайт
FSpriteList: TSpriteList;
// Хранит Bitmap, содержащий фон спрайта
FImage: Graphics.TBitmap;
// Хранит координаты левого верхнего угла спрайта
FLocation: Types.TPoint;
// Хранит размеры спрайта
FSize: Types.TSize;
// Хранит ссылку на обработчик смещения спрайта
FOnMove: OnMoveEvent;
// Методы
// Готовит спрайт к изображению
procedure BeginPaint;
// Завершает процесс изображения спрайта
procedure EndPaint;
// Устанавливает маску для спрайта из слоя aZ
procedure SetMask(const aZ:integer);
// Определяет факт перекрытия спрайтов из слоев First и Second
function Intersect(const First,Second:integer):boolean;