Blame doc/ru/groups.html

Ivan Mahonin 7a004b
<html>
Ivan Mahonin 7a004b
<head>
Ivan Mahonin 7a004b
<meta charset="UTF-8" />
Ivan Mahonin 7a004b
<link rel="stylesheet" type="text/css" href="style.css" />
Ivan Mahonin 7a004b
<title>Группы спрайтов - Helianthus</title>
Ivan Mahonin 7a004b
</head>
Ivan Mahonin 7a004b
<body>
Ivan Mahonin 7a004b
Ivan Mahonin 77a314
  

Helianthus

Ivan Mahonin 77a314
  
Ivan Mahonin 77a314
  

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

Ivan Mahonin 77a314
  

Установка

Ivan Mahonin 7a004b
  

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

Ivan Mahonin 7a004b
  

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

Ivan Mahonin 7a004b
  

Рисование

Ivan Mahonin cece70
  

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

Ivan Mahonin cece70
  

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

Ivan Mahonin cece70
  

Буфер кадра

Ivan Mahonin 7a004b
  

Спрайты

Ivan Mahonin 7a004b
  

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

Ivan Mahonin 7a004b
  

Звук

Ivan Mahonin e9aada
  

Пользовательский интерфейс

Ivan Mahonin 7a004b
  
Ivan Mahonin 7a004b
  

Все функции

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b
Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

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

Ivan Mahonin 7a004b
Ivan Mahonin cece70

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

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

Ivan Mahonin 7a004b
Ivan Mahonin cece70

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Функции:

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Group createGroup();

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Group createEdgesGroup();

Ivan Mahonin 7a004b
Ivan Mahonin cece70

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

Ivan Mahonin 7a004b
Ivan Mahonin cece70

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Параметры:

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

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

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

void groupDestroy(Group group);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Удалить группу. Спрайты, которые содержались в группе продолжат существовать, просто они больше не будут состоять в данной группе.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Важно: Скорее всего у вас в программе останется переменная в которой хранился указатель на группу. Этот указатель станет недействителен — будет указывать на неопределённую область памяти — не на группу, группа удалена. Вы можете занести в эту переменную другую группу, но использовать старое значение переменной больше нельзя это приведёт к ошибкам и непредсказуемому поведению программы.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

void groupDestroyEx(Group group, int destroySprites);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Удалить группу, с возможностью удаления и спрайтов тоже. См. также groupDestroy.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Параметры:

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

destroySprites — если TRUE, то перед удалением группы будут удалены и все содержащиеся в ней спрайты (см. spriteDestroy).

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

void groupAdd(Group group, Sprite sprite);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Добавить спрайт в группу.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Параметры:

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

sprite — спрайт для добавления.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

void groupRemove(Group group, Sprite sprite);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Исключить спрайт из группы.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Параметры:

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

sprite — спрайт для исключения.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

void groupClear(Group group);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Исключить из группы все спрайты. Группа станет пустой. См. также groupRemove.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

void groupClearEx(Group group, int destroySprites);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Очистить группу с возможностью удаления всех спрайтов. См. также groupClear, groupDestroyEx, spriteDestroy.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Параметры:

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

int groupContains(Group group, Sprite sprite);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Возвращает TRUE, если спрайт содержится в группе, иначе возвращает FALSE.

Ivan Mahonin 7a004b
Ivan Mahonin d38577

Параметры:

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

sprite — спрайт для проверки.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

int groupGetCount(Group group);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Возвращает количество спрайтов в группе.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Sprite groupGet(Group group, int i);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Возвращает содержащийся в группе спрайт по указанному номеру.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Параметры:

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

i — номер спрайта в группе.

Ivan Mahonin 7a004b
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

Параметры:

Ivan Mahonin cece70
Ivan Mahonin cece70

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

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

Ivan Mahonin cece70
Ivan Mahonin 7a004b

int groupOverlap(Group group, Sprite sprite);

Ivan Mahonin cece70

int groupCollide(Group group, Sprite sprite);

Ivan Mahonin 7a004b
Ivan Mahonin cece70

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

int groupOverlapGroup(Group a, Group b);

Ivan Mahonin cece70

int groupCollideGroup(Group a, Group b);

Ivan Mahonin 7a004b
Ivan Mahonin cece70

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

int groupOverlapBetween(Group group);

Ivan Mahonin cece70

int groupCollideBetween(Group group);

Ivan Mahonin 7a004b
Ivan Mahonin cece70

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

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

double groupGetMinDepth(Group group);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Возвращает минимальную глубину среди всех спрайтов в группе.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

double groupGetMaxDepth(Group group);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Возвращает максимальную глубину среди всех спрайтов в группе.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

void groupDestroyEach(Group group);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Полностью удалить каждый спрайт в данной группе. Группа станет пустой. См. также groupClearEx, spriteDestroy.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

void groupDestroyTimerEach(Group group, double lifetime);

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

Задать таймер на удаление для каждого спрайта в группе. См. также spriteDestroyTimer.

Ivan Mahonin 7a004b
Ivan Mahonin 7a004b

void groupSetVisibleEach(Group group, int visible);

Ivan Mahonin cece70

void groupSetFrozenEach(Group group, int frozen);

Ivan Mahonin cece70

void groupSetDebugEach(Group group, int debug);

Ivan Mahonin 7a004b

void groupSetWidthEach(Group group, double width);

Ivan Mahonin 7a004b

void groupSetHeightEach(Group group, double height);

Ivan Mahonin 7a004b

void groupSetDepthEach(Group group, double depth);

Ivan Mahonin cece70

void groupSetXEach(Group group, double x);

Ivan Mahonin cece70

void groupSetYEach(Group group, double y);

Ivan Mahonin cece70

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

Ivan Mahonin 7a004b

void groupSetVelocityXEach(Group group, double x);

Ivan Mahonin 7a004b

void groupSetVelocityYEach(Group group, double y);

Ivan Mahonin 7a004b

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

Ivan Mahonin cece70

void groupSetAccelerationXEach(Group group, double x);

Ivan Mahonin cece70

void groupSetAccelerationYEach(Group group, double y);

Ivan Mahonin cece70

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

Ivan Mahonin 7a004b

void groupSetRotateToDirectionEach(Group group, int rotateToDirection);

Ivan Mahonin 7a004b

void groupSetRotationEach(Group group, double rotation);

Ivan Mahonin 7a004b

void groupSetRotationSpeedEach(Group group, double rotationSpeed);

Ivan Mahonin 7a004b

void groupSetScaleEach(Group group, double scale);

Ivan Mahonin 7a004b

void groupSetMirrorXEach(Group group, int mirrorX);

Ivan Mahonin 7a004b

void groupSetMirrorYEach(Group group, int mirrorY);

Ivan Mahonin 7a004b

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

Ivan Mahonin 7a004b

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

Ivan Mahonin cece70

void groupSetAnimationEach(Group group, Animation animation);

Ivan Mahonin 7a004b

void groupSetNoAnimationEach(Group group);

Ivan Mahonin cece70

void groupSetShapeColorEach(Group group, unsigned int colorCode);

Ivan Mahonin cece70

void groupSetTintColorEach(Group group, unsigned int colorCode);

Ivan Mahonin cece70

void groupSetBouncinessEach(Group group, double bounciness);

Ivan Mahonin cece70

void groupSetBouncinessThresholdEach(Group group, double bouncinessThreshold);

Ivan Mahonin cece70

void groupSetFrictionEach(Group group, double friction);

Ivan Mahonin cece70

void groupSetAirFrictionEach(Group group, double friction);

Ivan Mahonin cece70

void groupSetMassLevelEach(Group group, int massLevel);

Ivan Mahonin cece70

void groupSetUserTagEach(Group group, int tag);

Ivan Mahonin cece70

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

Ivan Mahonin cece70

void groupSetUserDataEach(Group group, void *data);

Ivan Mahonin cece70

void groupSetDestroyEach(Group group, SpriteCallback destroy);

Ivan Mahonin 7a004b
Ivan Mahonin acc470

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

Ivan Mahonin 7a004b
Ivan Mahonin cece70

void groupSetColliderSensitiveDistance(Group group, double distance);

Ivan Mahonin 7a004b

void groupSetColliderEach(Group group, Collider type, double xOffset, double yOffset, double rotationOffset);

Ivan Mahonin 7a004b

void groupSetColliderCircleEach(Group group, double xOffset, double yOffset, double radius);

Ivan Mahonin 7a004b

void groupSetColliderRectangleEach(Group group, double xOffset, double yOffset, double rotationOffset, double width, double height, double cornersRadius);

Ivan Mahonin 7a004b

void groupSetColliderEachEx(Group group, Collider type, double xOffset, double yOffset, double rotationOffset, double width, double height, double radius);

Ivan Mahonin 7a004b
Ivan Mahonin acc470

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

Ivan Mahonin 7a004b
Ivan Mahonin cece70

void groupDraw(Group group);

Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin 7a004b
Ivan Mahonin 7a004b
</body>
Ivan Mahonin 7a004b
</html>