|
|
7a004b |
|
|
|
7a004b |
|
|
|
7a004b |
<meta charset="UTF-8">
|
|
|
7a004b |
<link href="style.css" rel="stylesheet" type="text/css">
|
|
|
7a004b |
<title>Группы спрайтов - Helianthus</title>
|
|
|
7a004b |
|
|
|
7a004b |
|
|
|
7a004b |
|
|
|
7a004b |
Helianthus
|
|
|
7a004b |
Запуск и общие функции
|
|
|
7a004b |
Клавиатура и мышь
|
|
|
7a004b |
Рисование
|
|
|
7a004b |
Спрайты
|
|
|
7a004b |
Группы спрайтов
|
|
|
7a004b |
Камера
|
|
|
7a004b |
Звук
|
|
|
7a004b |
|
|
|
7a004b |
Все функции
|
|
|
7a004b |
|
|
|
7a004b |
|
|
|
7a004b |
|
|
|
7a004b |
Группы спрайтов
|
|
|
7a004b |
|
|
|
7a004b |
Вы можете объединять спрайты в группы. Группы помогут вам если вам нужно выполнять одинаковый действия со множеством спрайтов. Вы можете одной командой задать одинаковую скорость сразу всем спрайтам в группе, либо включить/выключить видимость спрайтов в группу и прочее.
|
|
|
7a004b |
|
|
|
7a004b |
Создать группу можно функцией createGroup, которая возвращает значение типа Group, которое по сути является адресом в памяти — указателем на описание группы внутри библиотеки Helianthus.
|
|
|
7a004b |
|
|
|
7a004b |
Для добавления спрайта в группу используйте функцию groupAdd, для удаления из группы - groupRemove.
|
|
|
7a004b |
|
|
|
7a004b |
Все функции работы с группами повторяют функции работы с одиночными спрайтами, только применяются они одновременно ко всем спрайтам в группе. Поэтому заглядывайте и в раздел «Спрайты».
|
|
|
7a004b |
|
|
|
7a004b |
Функции:
|
|
|
7a004b |
|
|
|
7a004b |
Group createGroup();
|
|
|
7a004b |
|
|
|
7a004b |
Создать пустую группу. В дальнейшем вы можете добавить в неё спрайты функцией groupAdd.
|
|
|
7a004b |
|
|
|
7a004b |
Group createEdgesGroup();
|
|
|
7a004b |
|
|
|
7a004b |
Создать группу спрайтов ограничивающих края экрана. Используйте эту группу если вам нужно сделать так чтобы спрайт отталкивался от краёв экрана. Смотрите описание физической модели в разделе «Спрайты».
|
|
|
7a004b |
|
|
|
7a004b |
Group createEdgesGroupEx(double x1, double y1, double x2, double y2, double borderWidth);
|
|
|
7a004b |
|
|
|
7a004b |
Создать группу спрайтов ограничивающих прямоугольник. Функция аналогична функции createEdgesGroup, только рамка создаётся не вокруг краёв экрана, а вокруг заданного вами прямоугольника.
|
|
|
7a004b |
|
|
|
7a004b |
Параметры:
|
|
|
7a004b |
|
|
|
7a004b |
x1, y1 — координаты верхнего левого угла прямоугольника;
|
|
|
7a004b |
x2, y2 — координаты нижнего правого угла прямоугольника;
|
|
|
7a004b |
borderWidth — толщина рамки.
|
|
|
7a004b |
|
|
|
7a004b |
void groupDestroy(Group group);
|
|
|
7a004b |
|
|
|
7a004b |
Удалить группу. Спрайты, которые содержались в группе продолжат существовать, просто они больше не будут состоять в данной группе.
|
|
|
7a004b |
|
|
|
7a004b |
Важно: Скорее всего у вас в программе останется переменная в которой хранился указатель на группу. Этот указатель станет недействителен — будет указывать на неопределённую область памяти — не на группу, группа удалена. Вы можете занести в эту переменную другую группу, но использовать старое значение переменной больше нельзя это приведёт к ошибкам и непредсказуемому поведению программы.
|
|
|
7a004b |
|
|
|
7a004b |
void groupDestroyEx(Group group, int destroySprites);
|
|
|
7a004b |
|
|
|
7a004b |
Удалить группу, с возможностью удаления и спрайтов тоже. См. также groupDestroy.
|
|
|
7a004b |
|
|
|
7a004b |
Параметры:
|
|
|
7a004b |
|
|
|
7a004b |
destroySprites — если TRUE, то перед удалением группы будут удалены и все содержащиеся в ней спрайты (см. spriteDestroy).
|
|
|
7a004b |
|
|
|
7a004b |
void groupAdd(Group group, Sprite sprite);
|
|
|
7a004b |
|
|
|
7a004b |
Добавить спрайт в группу.
|
|
|
7a004b |
|
|
|
7a004b |
Параметры:
|
|
|
7a004b |
|
|
|
7a004b |
sprite — спрайт для добавления.
|
|
|
7a004b |
|
|
|
7a004b |
void groupRemove(Group group, Sprite sprite);
|
|
|
7a004b |
|
|
|
7a004b |
Исключить спрайт из группы.
|
|
|
7a004b |
|
|
|
7a004b |
Параметры:
|
|
|
7a004b |
|
|
|
7a004b |
sprite — спрайт для исключения.
|
|
|
7a004b |
|
|
|
7a004b |
void groupClear(Group group);
|
|
|
7a004b |
|
|
|
7a004b |
Исключить из группы все спрайты. Группа станет пустой. См. также groupRemove.
|
|
|
7a004b |
|
|
|
7a004b |
void groupClearEx(Group group, int destroySprites);
|
|
|
7a004b |
|
|
|
7a004b |
Очистить группу с возможностью удаления всех спрайтов. См. также groupClear, groupDestroyEx, spriteDestroy.
|
|
|
7a004b |
|
|
|
7a004b |
Параметры:
|
|
|
7a004b |
|
|
|
7a004b |
destroySprites — если TRUE, то спрайты вместо исключения из группы будут полностью удалены.
|
|
|
7a004b |
|
|
|
7a004b |
int groupContains(Group group, Sprite sprite);
|
|
|
7a004b |
|
|
|
7a004b |
Возвращает TRUE, если спрайт содержится в группе, иначе возвращает FALSE.
|
|
|
7a004b |
|
|
|
7a004b |
Параметры:
|
|
|
7a004b |
|
|
|
7a004b |
sprite — спрайт для проверки.
|
|
|
7a004b |
|
|
|
7a004b |
int groupGetCount(Group group);
|
|
|
7a004b |
|
|
|
7a004b |
Возвращает количество спрайтов в группе.
|
|
|
7a004b |
|
|
|
7a004b |
Sprite groupGet(Group group, int i);
|
|
|
7a004b |
|
|
|
7a004b |
Возвращает содержащийся в группе спрайт по указанному номеру.
|
|
|
7a004b |
|
|
|
7a004b |
Параметры:
|
|
|
7a004b |
|
|
|
7a004b |
i — номер спрайта в группе.
|
|
|
7a004b |
|
|
|
7a004b |
int groupOverlap(Group group, Sprite sprite);
|
|
|
7a004b |
int groupCollide(Group group, Sprite sprite, double bounciness);
|
|
|
7a004b |
int groupBounceOff(Group group, Sprite sprite, double bounciness);
|
|
|
7a004b |
int groupPush(Group group, Sprite sprite, double bounciness);
|
|
|
7a004b |
int groupCollideEx(Group group, Sprite sprite, int keepVelocityGroup, int keepVelocitySprite, double bounciness);
|
|
|
7a004b |
|
|
|
7a004b |
Функции обнаружения и решения столкновений между группой и спрайтом. Смотрите аналогичные функции из раздела «Спрайты». Каждый спрайт из группы будет взаимодействовать с указанным в параметрах функции спрайтом.
|
|
|
7a004b |
|
|
|
7a004b |
int groupOverlapGroup(Group a, Group b);
|
|
|
7a004b |
int groupCollideGroup(Group a, Group b, double bounciness);
|
|
|
7a004b |
int groupBounceOffGroup(Group group, Group other, double bounciness);
|
|
|
7a004b |
int groupPushGroup(Group group, Group other, double bounciness);
|
|
|
7a004b |
int groupCollideGroupEx(Group a, Group b, int keepVelocityA, int keepVelocityB, double bounciness);
|
|
|
7a004b |
|
|
|
7a004b |
Функции обнаружения и решения столкновений между группой и группой. Смотрите аналогичные функции из раздела «Спрайты». Каждый спрайт из первой группы будет взаимодействовать с каждым спрайтом из второй группы.
|
|
|
7a004b |
|
|
|
7a004b |
int groupOverlapBetween(Group group);
|
|
|
7a004b |
int groupCollideBetween(Group group, double bounciness);
|
|
|
7a004b |
int groupCollideBetweenEx(Group group, int keepVelocity, double bounciness);
|
|
|
7a004b |
|
|
|
7a004b |
Функции обнаружения и решения столкновений между спрайтами в группе. Смотрите аналогичные функции из раздела «Спрайты». Каждый спрайт в группе взаимодействует со всеми другими спрайтами в группе.
|
|
|
7a004b |
|
|
|
7a004b |
double groupGetMinDepth(Group group);
|
|
|
7a004b |
|
|
|
7a004b |
Возвращает минимальную глубину среди всех спрайтов в группе.
|
|
|
7a004b |
|
|
|
7a004b |
double groupGetMaxDepth(Group group);
|
|
|
7a004b |
|
|
|
7a004b |
Возвращает максимальную глубину среди всех спрайтов в группе.
|
|
|
7a004b |
|
|
|
7a004b |
void groupDestroyEach(Group group);
|
|
|
7a004b |
|
|
|
7a004b |
Полностью удалить каждый спрайт в данной группе. Группа станет пустой. См. также groupClearEx, spriteDestroy.
|
|
|
7a004b |
|
|
|
7a004b |
void groupDestroyTimerEach(Group group, double lifetime);
|
|
|
7a004b |
|
|
|
7a004b |
Задать таймер на удаление для каждого спрайта в группе. См. также spriteDestroyTimer.
|
|
|
7a004b |
|
|
|
7a004b |
void groupSetVisibleEach(Group group, int visible);
|
|
|
7a004b |
void groupSetWidthEach(Group group, double width);
|
|
|
7a004b |
void groupSetHeightEach(Group group, double height);
|
|
|
7a004b |
void groupSetDepthEach(Group group, double depth);
|
|
|
7a004b |
void groupSetVelocityXEach(Group group, double x);
|
|
|
7a004b |
void groupSetVelocityYEach(Group group, double y);
|
|
|
7a004b |
void groupSetVelocityEach(Group group, double x, double y);
|
|
|
7a004b |
void groupSetLifetimeEach(Group group, double lifetime);
|
|
|
7a004b |
void groupSetRotateToDirectionEach(Group group, int rotateToDirection);
|
|
|
7a004b |
void groupSetRotationEach(Group group, double rotation);
|
|
|
7a004b |
void groupSetRotationSpeedEach(Group group, double rotationSpeed);
|
|
|
7a004b |
void groupSetScaleEach(Group group, double scale);
|
|
|
7a004b |
void groupSetMirrorXEach(Group group, int mirrorX);
|
|
|
7a004b |
void groupSetMirrorYEach(Group group, int mirrorY);
|
|
|
7a004b |
void groupSetTagEach(Group group, int tag);
|
|
|
7a004b |
void groupPointToEach(Group group, double x, double y);
|
|
|
7a004b |
void groupSetSpeedAndDirectionEach(Group group, double speed, double angle);
|
|
|
7a004b |
void groupSetAnimationEach(Group group, const char *path);
|
|
|
7a004b |
void groupSetNoAnimationEach(Group group);
|
|
|
7a004b |
void groupSetShapeColorEach(Group group, const char *color);
|
|
|
7a004b |
void groupSetTintColorEach(Group group, const char *color);
|
|
|
7a004b |
|
|
|
7a004b |
Установить параметры для каждого спрайта в группе. Смотрите аналогичные функции из раздела «Спрайты».
|
|
|
7a004b |
|
|
|
7a004b |
void groupSetColliderEach(Group group, Collider type, double xOffset, double yOffset, double rotationOffset);
|
|
|
7a004b |
void groupSetColliderCircleEach(Group group, double xOffset, double yOffset, double radius);
|
|
|
7a004b |
void groupSetColliderRectangleEach(Group group, double xOffset, double yOffset, double rotationOffset, double width, double height, double cornersRadius);
|
|
|
7a004b |
void groupSetColliderEachEx(Group group, Collider type, double xOffset, double yOffset, double rotationOffset, double width, double height, double radius);
|
|
|
7a004b |
|
|
|
7a004b |
Установить параметры физического тела для каждого спрайта в группе. Смотрите аналогичные функции из раздела «Спрайты».
|
|
|
7a004b |
|
|
|
7a004b |
|
|
|
7a004b |
|
|
|
7a004b |
|