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
77a314
  

Helianthus

77a314
  
77a314
  

Helianthus: Документация

77a314
  

Установка

7a004b
  

Запуск и общие функции

7a004b
  

Клавиатура и мышь

7a004b
  

Рисование

cece70
  

Шрифты и текст

cece70
  

Текстуры и анимация

cece70
  

Буфер кадра

7a004b
  

Спрайты

7a004b
  

Группы спрайтов

7a004b
  

Звук

7a004b
  
7a004b
  

Все функции

7a004b
7a004b
7a004b
7a004b

Группы спрайтов

7a004b
cece70

Вы можете объединять спрайты в группы. Группы помогут вам если вам нужно выполнять одинаковые действия со множеством спрайтов. Вы можете одной командой задать одинаковую скорость сразу всем спрайтам в группе, либо включить/выключить видимость спрайтов в группу и прочее.

7a004b
7a004b

Создать группу можно функцией createGroup, которая возвращает значение типа Group, которое по сути является адресом в памяти — указателем на описание группы внутри библиотеки Helianthus.

7a004b
7a004b

Для добавления спрайта в группу используйте функцию groupAdd, для удаления из группы - groupRemove.

7a004b
cece70

Все функции для групп повторяют функции работы с одиночными спрайтами, только применяются они одновременно ко всем спрайтам в группе. Поэтому заглядывайте ещё и в раздел «Спрайты».

7a004b
7a004b

Функции:

7a004b
7a004b

Group createGroup();

7a004b
7a004b

Создать пустую группу. В дальнейшем вы можете добавить в неё спрайты функцией groupAdd.

7a004b
7a004b

Group createEdgesGroup();

7a004b
cece70

Создать группу спрайтов ограничивающих края экрана. Уровень массы для спрайтов рамки равен 100 (см. spriteSetMassLevel). Используйте эту группу если вам нужно сделать так чтобы спрайт отталкивался от краёв экрана. Смотрите описание физической модели в разделе «Спрайты».

7a004b
cece70

Group createEdgesGroupEx(double x1, double y1, double x2, double y2, double borderWidth, int massLevel);

7a004b
7a004b

Создать группу спрайтов ограничивающих прямоугольник. Функция аналогична функции createEdgesGroup, только рамка создаётся не вокруг краёв экрана, а вокруг заданного вами прямоугольника.

7a004b
7a004b

Параметры:

7a004b
7a004b

x1, y1 — координаты верхнего левого угла прямоугольника;

7a004b
x2, y2 — координаты нижнего правого угла прямоугольника;
cece70
borderWidth — толщина рамки;
cece70
massLevel — уровень массы для рамки, см. spriteSetMassLevel.

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
d38577

Параметры:

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
cece70

Sprite groupSpriteByPoint(Group group, double x, double y, int onlyVisible);

cece70
cece70

Найти в группе спрайт физическое тело которого содержит указанную точку. Если таких спрайтов несколько то возвращается самый верхний из них. См. также spriteIsPointInside, spriteSetDepth.

cece70
cece70

Параметры:

cece70
cece70

x, y — координаты точки;

cece70
onlyVisible — если TRUE, то поиск будет производиться только среди видимых спрайтов; если FALSE, то все спрайты группы будут включены в поиск.

cece70
7a004b

int groupOverlap(Group group, Sprite sprite);

cece70

int groupCollide(Group group, Sprite sprite);

7a004b
cece70

Функции обнаружения и решения столкновений между группой и спрайтом. Смотрите аналогичные функции из раздела «Спрайты»spriteOverlap и spriteCollide. Каждый спрайт из группы будет взаимодействовать с указанным в параметрах функции спрайтом.

7a004b
7a004b

int groupOverlapGroup(Group a, Group b);

cece70

int groupCollideGroup(Group a, Group b);

7a004b
cece70

Функции обнаружения и решения столкновений между группой и группой. Смотрите аналогичные функции из раздела «Спрайты»spriteOverlap и spriteCollide. Каждый спрайт из первой группы будет взаимодействовать с каждым спрайтом из второй группы.

7a004b
7a004b

int groupOverlapBetween(Group group);

cece70

int groupCollideBetween(Group group);

7a004b
cece70

Функции обнаружения и решения столкновений между спрайтами в группе. Смотрите аналогичные функции из раздела «Спрайты»spriteOverlap и spriteCollide. Каждый спрайт в группе взаимодействует со всеми остальными спрайтами в группе.

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);

cece70

void groupSetFrozenEach(Group group, int frozen);

cece70

void groupSetDebugEach(Group group, int debug);

7a004b

void groupSetWidthEach(Group group, double width);

7a004b

void groupSetHeightEach(Group group, double height);

7a004b

void groupSetDepthEach(Group group, double depth);

cece70

void groupSetXEach(Group group, double x);

cece70

void groupSetYEach(Group group, double y);

cece70

void groupSetXYEach(Group group, double x, double y);

7a004b

void groupSetVelocityXEach(Group group, double x);

7a004b

void groupSetVelocityYEach(Group group, double y);

7a004b

void groupSetVelocityEach(Group group, double x, double y);

cece70

void groupSetAccelerationXEach(Group group, double x);

cece70

void groupSetAccelerationYEach(Group group, double y);

cece70

void groupSetAccelerationEach(Group group, double x, double y);

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 groupPointToEach(Group group, double x, double y);

7a004b

void groupSetSpeedAndDirectionEach(Group group, double speed, double angle);

cece70

void groupSetAnimationEach(Group group, Animation animation);

7a004b

void groupSetNoAnimationEach(Group group);

cece70

void groupSetShapeColorEach(Group group, unsigned int colorCode);

cece70

void groupSetTintColorEach(Group group, unsigned int colorCode);

cece70

void groupSetBouncinessEach(Group group, double bounciness);

cece70

void groupSetBouncinessThresholdEach(Group group, double bouncinessThreshold);

cece70

void groupSetFrictionEach(Group group, double friction);

cece70

void groupSetAirFrictionEach(Group group, double friction);

cece70

void groupSetMassLevelEach(Group group, int massLevel);

cece70

void groupSetUserTagEach(Group group, int tag);

cece70

void groupSetUserTextEach(Group group, const char *text);

cece70

void groupSetUserDataEach(Group group, void *data);

cece70

void groupSetDestroyEach(Group group, SpriteCallback destroy);

7a004b
acc470

Установить параметры для каждого спрайта в группе. Смотрите аналогичные функции из раздела «Спрайты».

7a004b
cece70

void groupSetColliderSensitiveDistance(Group group, double distance);

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
acc470

Установить параметры физического тела для каждого спрайта в группе. Смотрите аналогичные функции из раздела «Спрайты».

7a004b
cece70

void groupDraw(Group group);

cece70
cece70

Нарисовать все спрайты в группе. См. также spriteDraw, drawSprites.

cece70
7a004b
7a004b
7a004b