pascalabcnet/PABCNetHelp/PABCUnits/ABCObjects/gabc_SpriteABC.html

540 lines
21 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="SpriteABC">
<param name="Keyword" value="AddState">
<param name="Keyword" value="CheckStates">
<param name="Keyword" value="Add">
<param name="Keyword" value="SaveWithInfo">
<param name="Keyword" value="NextFrame">
<param name="Keyword" value="NextTick">
<param name="Keyword" value="StateName">
<param name="Keyword" value="State">
<param name="Keyword" value="StateCount">
<param name="Keyword" value="Speed">
<param name="Keyword" value="Active">
<param name="Keyword" value="Frame">
<param name="Keyword" value="FrameCount">
<param name="Keyword" value="FrameBeg">
<param name="Keyword" value="Clone0">
<param name="Keyword" value="Clone">
</object></head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title><link rel="StyleSheet" href="../../default.css"><body>
<H1>Класс SpriteABC</H1>
<p>Класс <code>SpriteABC</code> является потомком класса
<code>MultiPictureABC</code> и представляет графический объект
&quot;<span lang="ru">Спрайт</span>&quot;, <span lang="ru">автоматически
анимирующий на экране последовательность рисунков. Спрайты также могут иметь
несколько состояний, каждое из которых представляет собой анимацию рисунков.</span>
</p>
<table border=0 CELLPADDING=5>
<tr>
<td height="12"></td>
</tr>
<tr>
<td style="border-style:solid; border-width:1px; border-color: #808080; background-color: #E7E7F7">
<font style="font-size: 11pt">Конструкторы класса SpriteABC</font></td>
</tr>
<tr><td>
<code>
<b>constructor</b> Create(x,y: integer; fname: string);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Создает спрайт, загружая его из файла с именем fname. Имя fname может быть либо именем графического файла, либо именем информационного файла спрайта с расширением .spinf. Если имя является именем графического файла, то создается спрайт с одним кадром. Остальные кадры добавляются методом Add. После этого при необходимости добавляются состояния методом AddStates и вызывается метод CheckStates. Если файл имеет расширение .spinf, то он содержит информацию о кадрах и состояниях спрайта и должен сопровождаться соответствующим графическим файлом. После создания спрайт отображается на экране в позиции (x,y)
</td></tr>
<tr><td>
<code>
<b>constructor</b> Create(x,y,w: integer; fname: string);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Создает спрайт, загружая его из файла fname. Файл должен хранить рисунок, представляющий собой последовательность кадров одного размера, расположенных по горизонтали. Каждый кадр считается имеющим ширину w. Если ширина рисунка в файле fname не кратна w, то возникает исключение. После этого при необходимости добавляются состояния методом AddStates и вызывается метод CheckStates После создания спрайт отображается на экране в позиции (x,y)
</td></tr>
<tr><td>
<code>
<b>constructor</b> Create(x,y,w: integer; p: Picture);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Создает спрайт, загружая его из объекта p: Picture. Он должен хранить рисунок, представляющий собой последовательность кадров одного размера, расположенных по горизонтали. Каждый кадр считается имеющим ширину w. Если ширина рисунка не кратна w, то возникает исключение. После этого при необходимости добавляются состояния методом AddStates и вызывается метод CheckStates. После создания спрайт отображается на экране в позиции (x,y)
</td></tr>
<tr><td>
<code>
<b>constructor</b> Create(g: SpriteABC);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Создает спрайт - копию спрайта g
</td></tr>
<tr>
<td height="8"></td>
</tr>
<tr>
<td style="border:1px solid #808080; background-color: #E7E7F7">
<font style="font-size: 11pt">Свойства класса SpriteABC</font></td>
</tr>
<tr>
<td>
<code>
<b>property</b> StateName: string;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Имя состояния
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> State: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Номер состояния (<span lang="ru">от
</span>1<span lang="ru"> до </span>StateCount)
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> StateCount: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Количество состояний<span lang="ru">.
Свойство доступно только на чтение</span>
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Speed: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Скорость спрайта (1..10)
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Active: boolean;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Активность спрайта: True, если спрайт активен (т.е. происходит его анимация), и False в противном случае
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Frame: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Текущий кадр в текущем состоянии
</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr>
<td style="border:1px solid #808080; background-color: #E7E7F7">
<font style="font-size: 11pt">Методы класса SpriteABC</font></td>
</tr>
<tr><td>
<code>
<b>procedure</b> AddState(name: string; count: integer);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Добавляет состояние к спрайту. После добавления всех состояний следует вызвать CheckStates
</td></tr>
<tr><td>
<code>
<b>procedure</b> CheckStates;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Проверяет корректность набора состояний. Вызывается после добавления всех состояний
</td></tr>
<tr><td>
<code>
<b>procedure</b> SaveWithInfo(fname: string);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Сохраняет графический и информационный файлы спрайта. Имя fname задает имя графического файла. Информационный файл сохраняется в тот же каталог, что и графический, имеет то же имя и расширение .spinf
</td></tr>
<tr><td>
<code>
<b>procedure</b> NextFrame;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Переходит к следующему кадру в текущем состоянии
</td></tr>
<tr><td>
<code>
<b>procedure</b> NextTick;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Переходит к следующему тику таймера; если он равен ticks, то он сбрасывается в 1 и вызывается NextFrame
</td></tr>
<tr><td>
<code>
<b>function</b> FrameCount: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает количество кадров в текущем состоянии
</td></tr>
<tr><td>
<code>
<b>function</b> FrameBeg: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает начальный кадр в текущем состоянии
</td></tr>
<tr>
<td>
<code>
<b>function</b> Clone: SpriteABC;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает клон объекта
</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr>
<td style="border:1px solid #808080; background-color: #E7E7F7">
<font style="font-size: 11pt">Свойства<span lang="ru">, унаследованные от</span> класса MultiPictureABC</font></td>
</tr>
<tr>
<td>
<code>
<b>property</b> CurrentPicture: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Номер текущего рисунка
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Count: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Количество рисунков в наборе
</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr>
<td style="border:1px solid #808080; background-color: #E7E7F7">
<font style="font-size: 11pt">Методы<span lang="ru">, унаследованные от</span> класса MultiPictureABC</font></td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> Add(fname: string);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Добавляет рисунок к
<span lang="ru">спрайту</span>, загружая его из файла fname. Рисунок должен иметь те же размеры, что и все рисунки из набора
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> ChangePicture(fname: string);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Меняет набор рисунков на набор, состоящий из одного рисунка, загружая его из файла с именем fname
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> ChangePicture(w: integer; fname: string);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Меняет набор рисунков на набор, загружая его из файла с именем fname. Файл должен хранить последовательность изображений одного размера, расположенных по горизонтали. Каждое изображение считается имеющим ширину w
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> NextPicture;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Циклически переходит к следующему рисунку из набора
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> PrevPicture;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Циклически переходит к предыдующему рисунку из набора
</td>
</tr>
<tr>
<td>
<code>
<b>function</b> Clone: MultiPictureABC;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает клон набора рисунков
</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr>
<td style="border:1px solid #808080; background-color: #E7E7F7">
<font style="font-size: 11pt">Свойства, унаследованные от класса ObjectABC</font></td>
</tr>
<tr>
<td>
<code>
<b>property</b> Left: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Отступ графического объекта от левого края
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Top: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Отступ графического объекта от верхнего края
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Width: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ширина графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Height: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Высота графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> dx: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x-координата вектора перемещения объекта при вызове метода
<code>Move</code>. По
умолчанию установлено в 0. Для неподвижных объектов может быть использовано для
хранения любой дополнительной информации, связанной с объектом
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> dy: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y-координата вектора перемещения объекта при вызове метода
<code>Move</code>. По
умолчанию установлено в 0. Для неподвижных объектов может быть использовано для
хранения любой дополнительной информации, связанной с объектом
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Center: Point;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Центр графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Position: Point;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Левый верхний угол графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Visible: boolean;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Видим ли графический объект
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Color: GColor;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Цвет графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> FontColor: GColor;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Цвет шрифта графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Text: string;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Текст внутри графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> TextVisible: boolean;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Видимость текста внутри графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> TextScale: real;</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Масштаб текста относительно размеров графического объекта, 0&lt;=<code>TextScale</code>&lt;=1.
При <code>TextScale</code>=1 текст занимает всю ширину или высоту объекта. По умолчанию
<code>TextScale</code>=0.8</td>
</tr>
<tr>
<td>
<code>
<b>property</b> FontName: string;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Имя шрифта для вывода свойства
<code>Text</code>
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> FontStyle: FontStyleType;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Стиль шрифта для вывода свойства
<code>Text</code>
</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Number: integer;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Целое число, выводимое в центре графического объекта. Для вывода
используется свойство <code>Text</code>
</td>
</tr>
<tr>
<td>
<code><b>property</b> RealNumber: real;</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Вещественное число, выводимое в центре графического объекта. Для вывода
используется свойство <code>Text</code>. Вещественное число выводится с одним знаком после
десятичной точки</td>
</tr>
<tr>
<td>
<code>
<b>property</b> Owner: ContainerABC;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Владелец графического объекта, ответственный также за перерисовку графического объекта внутри себя (по умолчанию
<code>nil</code>)
</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr>
<td style="border:1px solid #808080; background-color: #E7E7F7">
<font style="font-size: 11pt">Методы, унаследованные от класса ObjectABC</font></td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> MoveTo(x,y: integer);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Перемещает левый верхний угол графического объекта к точке (<code>x</code>, <code>y</code>)
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> MoveOn(a,b: integer);
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Перемещает графический объект на вектор (<code>a</code>, <code>b</code>)
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> Move; <b>override</b>;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Перемещает графический объект на вектор, задаваемый свойствами
<code>dx</code>, <code>dy</code>
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> Scale(f: real); <b>override</b>;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Масштабирует графический объект в f раз (<code>f</code>&gt;1 - увеличение, 0&lt;<code>f</code>&lt;1 - уменьшение)
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> ToFront;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Переносит графический объект на передний план
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> ToBack;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Переносит графический объект на задний план
</td>
</tr>
<tr>
<td>
<code>
<b>function</b> Bounds: System.Drawing.Rectangle;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает прямоугольник, определяющий границы графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>function</b> PtInside(x,y: integer): boolean; <b>
override</b>;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает <code>True</code>, если точка (<code>x</code>, <code>y</code>) находится внутри графического объекта, и <code>False</code> в противном случае
</td>
</tr>
<tr>
<td>
<code>
<b>function</b> Intersect(g: ObjectABC): boolean;<br>
</code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает <code>True</code>, если изображение данного графического объекта пересекается с изображением
графического объекта <code>g</code>, и <code>False</code> в противном случае. Белый цвет считается прозрачным и не принадлежащим объекту</td>
</tr>
<tr>
<td>
<code>
<b>function</b> IntersectRect(r: System.Drawing.Rectangle): boolean;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает <code>True</code>, если прямоугольник графического объекта пересекается прямоугольником
<code>r</code>, и <code>False</code> в противном случае
</td>
</tr>
<tr>
<td>
<code>
<b>function</b> Clone0: ObjectABC; <b>override</b>;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает клон графического объекта
</td>
</tr>
<tr>
<td>
<code>
<b>procedure</b> Draw(x,y: integer; g: Graphics); <b>
override</b>;</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Защищенная. Не
вызывается явно. Переопределяется для каждого графического класса. Рисует объект на
объекте <code>g:</code> <code>Graphics</code></td>
</tr>
<tr>
<td>
<code>
<b>destructor</b> Destroy;
</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Уничтожает графический объект
</td>
</tr>
</table>
</body></html>