Blame doc/ru/groups.html

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