Класс SpriteABC
Класс SpriteABC
Класс SpriteABC является потомком класса MultiPictureABC и представляет графический объект Спрайт, автоматически анимирующий на экране последовательность рисунков. Спрайты также могут иметь несколько состояний, каждое из которых представляет собой анимацию рисунков.
Конструкторы класса SpriteABC
constructor Create(x,y: integer; fname: string);
Создает спрайт, загружая его из файла с именем fname. Имя fname может быть либо именем графического файла, либо именем информационного файла спрайта с расширением .spinf. Если имя является именем графического файла, то создается спрайт с одним кадром. Остальные кадры добавляются методом Add. После этого при необходимости добавляются состояния методом AddStates и вызывается метод CheckStates. Если файл имеет расширение .spinf, то он содержит информацию о кадрах и состояниях спрайта и должен сопровождаться соответствующим графическим файлом. После создания спрайт отображается на экране в позиции (x,y)
constructor Create(x,y,w: integer; fname: string);
Создает спрайт, загружая его из файла fname. Файл должен хранить рисунок, представляющий собой последовательность кадров одного размера, расположенных по горизонтали. Каждый кадр считается имеющим ширину w. Если ширина рисунка в файле fname не кратна w, то возникает исключение. После этого при необходимости добавляются состояния методом AddStates и вызывается метод CheckStates После создания спрайт отображается на экране в позиции (x,y)
constructor Create(x,y,w: integer; p: Picture);
Создает спрайт, загружая его из объекта p: Picture. Он должен хранить рисунок, представляющий собой последовательность кадров одного размера, расположенных по горизонтали. Каждый кадр считается имеющим ширину w. Если ширина рисунка не кратна w, то возникает исключение. После этого при необходимости добавляются состояния методом AddStates и вызывается метод CheckStates. После создания спрайт отображается на экране в позиции (x,y)
constructor Create(g: SpriteABC);
Создает спрайт - копию спрайта g
Свойства класса SpriteABC
property StateName: string;
Имя состояния
property State: integer;
Номер состояния (от 1 до StateCount)
property StateCount: integer;
Количество состояний. Свойство доступно только на чтение
property Speed: integer;
Скорость спрайта (1..10)
property Active: boolean;
Активность спрайта: True, если спрайт активен (т.е. происходит его анимация), и False в противном случае
property Frame: integer;
Текущий кадр в текущем состоянии
Методы класса SpriteABC
procedure AddState(name: string; count: integer);
Добавляет состояние к спрайту. После добавления всех состояний следует вызвать CheckStates
procedure CheckStates;
Проверяет корректность набора состояний. Вызывается после добавления всех состояний
procedure SaveWithInfo(fname: string);
Сохраняет графический и информационный файлы спрайта. Имя fname задает имя графического файла. Информационный файл сохраняется в тот же каталог, что и графический, имеет то же имя и расширение .spinf
procedure NextFrame;
Переходит к следующему кадру в текущем состоянии
procedure NextTick;
Переходит к следующему тику таймера; если он равен ticks, то он сбрасывается в 1 и вызывается NextFrame
function FrameCount: integer;
Возвращает количество кадров в текущем состоянии
function FrameBeg: integer;
Возвращает начальный кадр в текущем состоянии
function Clone: SpriteABC;
Возвращает клон объекта
Свойства, унаследованные от класса MultiPictureABC
property CurrentPicture: integer;
Номер текущего рисунка
property Count: integer;
Количество рисунков в наборе
Методы, унаследованные от класса MultiPictureABC
procedure Add(fname: string);
Добавляет рисунок к спрайту, загружая его из файла fname. Рисунок должен иметь те же размеры, что и все рисунки из набора
procedure ChangePicture(fname: string);
Меняет набор рисунков на набор, состоящий из одного рисунка, загружая его из файла с именем fname
procedure ChangePicture(w: integer; fname: string);
Меняет набор рисунков на набор, загружая его из файла с именем fname. Файл должен хранить последовательность изображений одного размера, расположенных по горизонтали. Каждое изображение считается имеющим ширину w
procedure NextPicture;
Циклически переходит к следующему рисунку из набора
procedure PrevPicture;
Циклически переходит к предыдующему рисунку из набора
function Clone: MultiPictureABC;
Возвращает клон набора рисунков
Свойства, унаследованные от класса ObjectABC
property Left: integer;
Отступ графического объекта от левого края
property Top: integer;
Отступ графического объекта от верхнего края
property Width: integer;
Ширина графического объекта
property Height: integer;
Высота графического объекта
property dx: integer;
x-координата вектора перемещения объекта при вызове метода Move. По умолчанию установлено в 0. Для неподвижных объектов может быть использовано для хранения любой дополнительной информации, связанной с объектом
property dy: integer;
y-координата вектора перемещения объекта при вызове метода Move. По умолчанию установлено в 0. Для неподвижных объектов может быть использовано для хранения любой дополнительной информации, связанной с объектом
property Center: Point;
Центр графического объекта
property Position: Point;
Левый верхний угол графического объекта
property Visible: boolean;
Видим ли графический объект
property Color: GColor;
Цвет графического объекта
property FontColor: GColor;
Цвет шрифта графического объекта
property Text: string;
Текст внутри графического объекта
property TextVisible: boolean;
Видимость текста внутри графического объекта
property TextScale: real;
Масштаб текста относительно размеров графического объекта, 0<=TextScale<=1. При TextScale=1 текст занимает всю ширину или высоту объекта. По умолчанию TextScale=0.8
property FontName: string;
Имя шрифта для вывода свойства Text
property FontStyle: FontStyleType;
Стиль шрифта для вывода свойства Text
property Number: integer;
Целое число, выводимое в центре графического объекта. Для вывода используется свойство Text
property RealNumber: real;
Вещественное число, выводимое в центре графического объекта. Для вывода используется свойство Text. Вещественное число выводится с одним знаком после десятичной точки
property Owner: ContainerABC;
Владелец графического объекта, ответственный также за перерисовку графического объекта внутри себя (по умолчанию nil)
Методы, унаследованные от класса ObjectABC
procedure MoveTo(x,y: integer);
Перемещает левый верхний угол графического объекта к точке (x, y)
procedure MoveOn(a,b: integer);
Перемещает графический объект на вектор (a, b)
procedure Move; override;
Перемещает графический объект на вектор, задаваемый свойствами dx, dy
procedure Scale(f: real); override;
Масштабирует графический объект в f раз (f>1 - увеличение, 0<f<1 - уменьшение)
procedure ToFront;
Переносит графический объект на передний план
procedure ToBack;
Переносит графический объект на задний план
function Bounds: System.Drawing.Rectangle;
Возвращает прямоугольник, определяющий границы графического объекта
function PtInside(x,y: integer): boolean; override;
Возвращает True, если точка (x, y) находится внутри графического объекта, и False в противном случае
function Intersect(g: ObjectABC): boolean;
Возвращает True, если изображение данного графического объекта пересекается с изображением графического объекта g, и False в противном случае. Белый цвет считается прозрачным и не принадлежащим объекту
function IntersectRect(r: System.Drawing.Rectangle): boolean;
Возвращает True, если прямоугольник графического объекта пересекается прямоугольником r, и False в противном случае
function Clone0: ObjectABC; override;
Возвращает клон графического объекта
procedure Draw(x,y: integer; g: Graphics); override;
Защищенная. Не вызывается явно. Переопределяется для каждого графического класса. Рисует объект на объекте g: Graphics
destructor Destroy;
Уничтожает графический объект
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
5.1. Класс
5.1. Класс Класс (class) в языке UML служит для обозначения множества объектов, которые обладают одинаковой структурой, поведением и отношениями с объектами из других классов. Графически класс изображается в виде прямоугольника, который дополнительно может быть разделен
19.1.3. Класс type_info
19.1.3. Класс type_info Точное определение класса type_info зависит от реализации, но некоторые его характерные черты остаются неизменными в любой программе на C++:class type_info {// представление зависит от реализацииprivate:type_info( const type_info& );type_info& operator= ( const type_info& );public:virtual ~type_info();int
Класс Pen
Класс Pen Класс Pen используется для создания пера, при помощи которого проводятся прямые и кривые линии. В отличие от полной версии .NET Framework, поддерживающей четыре перегруженных версии конструктора Pen, .NET Compact Framework позволяет создавать перо только с помощью двух
Класс Brush
Класс Brush Класс Brush является абстрактным классом для создания кистей, с помощью которых можно рисовать фигуры и текст на графической поверхности. Библиотека .NET Compact Framework поддерживает классы SolidBrush и TextureBrush. К сожалению, класс LinearGradientBrush, позволяющий рисовать красивые
Самый базовый класс MFC (класс CObject)
Самый базовый класс MFC (класс CObject) Подавляющее большинство классов библиотеки MFC наследовано от базового класса CObject, лежащего в основе всей иерархии классов этой библиотеки. Методы и элементы данных класса CObject представляют наиболее общие свойства наследованных из него
Архивный класс (класс CArchive)
Архивный класс (класс CArchive) Класс CArchive используется для сохранения и восстановления состояния объектов в файлах на диске. Перед использованием объекта класса CArchive он должен быть привязан к файлу – объекту класса CFile.Более подробно о процессе сохранения и восстановления
Класс CObject – основной класс MFC
Класс CObject – основной класс MFC Подавляющее большинство классов из библиотеки MFC наследуются от основного класса CObject. Практически все классы, которые используются в ваших приложениях, например CView или CWinApp, унаследованы от класса CObject.Класс CObject обеспечивает наиболее общие
Класс CException
Класс CException Класс CException включает два виртуальных метода GetErrorMessage и ReportError. Эти методы позволяют получить словесное описание причины, которая привела к вызову исключения. Заметим, что методы GetErrorMessage и ReportError чисто виртуальные, поэтому они должны быть переопределены в
Класс CMemoryException
Класс CMemoryException Когда приложение заказывает у операционной системы новый блок оперативной памяти, может случиться, что вся память уже используется и больше памяти отдано приложению быть не может.Когда приложение пытается создать новую переменную или объект, вызывая
Класс CFileException
Класс CFileException Класс CFileException предназначен для обработки исключительных ситуаций, возникающих во время создания или вызова методов класса CFile и порожденных от него классов. Этот класс описан нами в разделе “Класс CFile” и предназначается для работы с файловой системой.
Класс CArchiveException
Класс CArchiveException Исключительные ситуации, возникающие во время записи и восстановления объектов из файла, вызывают исключение CArchiveException.Причина, по которой было вызвано исключение, определяется элементом данных m_cause из класса CFileException. В него заносится код, по которому
Класс CNotSupportedException
Класс CNotSupportedException Если приложение пытается вызвать несуществующий метод класса, то вызывается исключение CNotSupportedException. Конструктор класса CNotSupportedException имеет следующий вид:CNotSupportedException();Однако если вы сами желаете вызвать из своего кода исключение этого типа, то вместо
Класс CResourceException
Класс CResourceException Если в процессе работы возникают проблемы с ресурсами, например приложение пытается загрузить несуществующий ресурс, тогда вызывается исключение CResourceException. Вы можете вызвать это исключение сами. Для этого воспользуйтесь функцией AfxThrowResourceException:void
Класс CUserException
Класс CUserException Если какая-либо операция при работе приложения закончилась с ошибкой, оно может вызвать функцию AfxMessageBox, чтобы сообщить об этом пользователю, а затем вызвать исключение с объектом класса CUserException. Чтобы создать объект класса CUserException и вызвать исключение,
Класс ObjectBoardABC
Класс ObjectBoardABC Класс ObjectBoardABC является потомком класса BoardABC и представляет графический объект Доска с объектами.Конструкторы класса ObjectBoardABC constructor Create(x,y,nx,ny,szx,szy: integer; cl: GColor); Создает доску с объектами nx на ny клеток цвета cl с размером клетки (szx, szy) в позиции (x,
У11.2 Класс и его АТД
У11.2 Класс и его АТД Проверьте все предусловия и аксиомы АТД STACK, введенного в предыдущих лекциях, и покажите, отображаются ли они в классе STACK4, а если да, то