Немедленно опережает излучатель частиц на заданное количество времени. Если вы хотите продвинуть высокочастотный излучатель на большой промежуток времени, такой как 1 секунда, вы должны вызвать эту команду несколько раз с небольшим значением времени, таким как 0,02, чтобы она создавала новые частицы партиями и равномерно распределяла их. Вызов его один раз с большим временным значением 1 секунда создал бы огромную партию частиц сразу и переместил бы их вместе как каплю вместо того, чтобы распространять их.
void agk::UpdateParticles( UINT ID, float time )
ID - Идентификатор излучателя для проверки.
time - Время в секундах для продвижения излучателя.
Устанавливает, рисуются ли испускаемые частицы. Установите значение 1, чтобы показать частицы, и 0, чтобы скрыть их. Частицы все равно будут обновляться, пока они скрыты, вы можете остановить обновление частиц с помощью SetParticlesActive
void agk::SetParticlesVisible( UINT ID, int visible )
ID - Идентификатор излучателя для изменения.
visible - 1=показать, 0=скрыть
Устанавливает минимальный и максимальный множитель, который будет влиять на испускаемые частицы. Это может быть использовано для того, чтобы гарантировать, что при испускании частиц будут наблюдаться некоторые изменения.
void agk::SetParticlesVelocityRange( UINT ID, float v1, float v2 )
ID - Идентификатор излучателя для изменения.
v1 - Минимальный множитель скорости.
v2 - Множитель максимальной скорости.
Установите прозрачность частиц на определенную настройку с выбором без прозрачности, альфа-прозрачности и аддитивного смешивания. По умолчанию частицы создаются с альфа-прозрачностью.
void agk::SetParticlesTransparency( UINT ID, int mode )
ID - Идентификатор излучателя частиц для изменения.
mode - Режим прозрачности для этих частиц: 0=выкл., 1=альфа-прозрачность, 2=аддитивное смешивание
Задает область вокруг излучателя, в которой могут появиться новые частицы. Эти значения относятся к положению эмиттера, например, зона 0,0,0,0 будет означать, что все частицы начинаются в точке положения эмиттера. Зона -10 в x и +10 x, где y равно 0 (-10,0,10,0), создаст линию, центрированную на положении излучателя, вдоль которой будут случайным образом появляться частицы. Зона коробки, где и x, и y имеют ненулевые размеры, означала бы, что частицы могут начинаться в любой точке внутри коробки.
void agk::SetParticlesStartZone( UINT ID, float x1, float y1, float x2, float y2 )
ID - Идентификатор излучателя для изменения.
x1 - Координата x верхнего левого угла стартовой зоны.
y1 - Координата y верхнего левого угла стартовой зоны.
x2 - Координата x в правом нижнем углу стартовой зоны.
y2 - Координата y в правом нижнем углу стартовой зоны.
Задает размер всех частиц в мировых координатах. Установка большого количества частиц на большой размер будет плохо работать на мобильных устройствах с низкой скоростью заполнения (количество пикселей, которые он может нарисовать в секунду).
void agk::SetParticlesSize( UINT ID, float size )
ID - Идентификатор излучателя для изменения.
size - Размер частиц
Задает диапазон вращения в радианах, который частица может иметь в течение своей жизни. Когда частица создается, она начинается под углом 0 и выбирает случайную скорость вращения между углом 1 и углом 2. Затем частица будет вращаться с выбранной скоростью в течение всей своей жизни. Используйте отрицательные значения для вращения против часовой стрелки и положительные для вращения по часовой стрелке.
void agk::SetParticlesRotationRangeRad( UINT ID, float angle1, float angle2 )
ID - Идентификатор излучателя для изменения.
angle1 - Минимальный угол дальности в радианах в секунду.
angle2 - Максимальный угол дальности в радианах в секунду.
Задает диапазон вращения в радианах, который частица может иметь в течение своей жизни. Когда частица создается, она начинается под углом 0 и выбирает случайную скорость вращения между углом 1 и углом 2. Затем частица будет вращаться с выбранной скоростью в течение всей своей жизни. Используйте отрицательные значения для вращения против часовой стрелки и положительные для вращения по часовой стрелке.
void agk::SetParticlesRotationRange( UINT ID, float angle1, float angle2 )
ID - Идентификатор излучателя для изменения.
angle1 - Минимальный угол диапазона в градусах в секунду.
angle2 - Максимальный угол диапазона в градусах в секунду.
Устанавливает положение излучателя частиц. Это положение, из которого будут появляться новые частицы, и не влияет на частицы, которые уже видны.
void agk::SetParticlesPosition( UINT ID, float x, float y )
ID - Идентификатор излучателя для изменения.
x - Новая координата x для излучателя в мировых координатах.
y - Новая координата y для излучателя в мировых координатах.
Устанавливает максимальное количество частиц, которые будут испускаться. Если это значение равно -1, то число бесконечно. Излучатель будет вести подсчет количества частиц, которые он испускает, и остановится, когда будет достигнут предел. Чтобы проверить, достиг ли излучатель своего предела, используйте GetParticlesMaxReached. Чтобы сбросить счетчик и заставить его снова начать излучать, используйте ResetParticleCount.
void agk::SetParticlesMax( UINT ID, int max )
ID - Идентификатор излучателя для изменения.
max - Максимальное количество испускаемых частиц
Задает время жизни частиц после их испускания в секундах. После того, как частицы будут живы в течение заданного количества секунд, они исчезнут. Это одно из двух значений, влияющих на количество генерируемых частиц, другое-SetParticlesFrequency. Максимальное количество частиц, которое может быть на экране в любой момент времени, - это freq*life, причем freq-это количество частиц, испускаемых в секунду. Это значение не зависит от частоты кадров.
void agk::SetParticlesLife( UINT ID, float time )
ID - Идентификатор излучателя для изменения.
time - Время в секундах, в течение которого частица видна.
Устанавливает изображение, которое будет использоваться для каждой частицы. Начиная с 1083 изображений, которые могут быть загружены из субизображений, содержащихся в текстурах атласа.
void agk::SetParticlesImage( UINT ID, UINT imageID )
ID - Идентификатор излучателя для изменения.
imageID - Идентификатор изображения, используемого для испускаемых частиц.
Задает частоту генерации новых частиц. Значение freq указывает, сколько частиц должно быть произведено в секунду, это не зависит от частоты кадров. Это одно из двух значений, влияющих на количество генерируемых частиц, другое-SetParticlesLife. Максимальное количество частиц, которое может быть на экране в любой момент времени, - это freq*life, причем жизнь-это количество секунд, в течение которых частица живет, прежде чем исчезнуть. Это значение не зависит от частоты кадров.
void agk::SetParticlesFrequency( UINT ID, float freq )
ID - Идентификатор излучателя для изменения.
freq - Скорость образования новых частиц в частицах в секунду.
Позволяет частицам вращаться в том направлении, в котором они движутся. Это переопределяет любое использование SetParticlesRotationRange для изменения скорости вращения частиц. Вместо этого частицы всегда будут вращаться лицом к направлению своего движения.
void agk::SetParticlesFaceDirection( UINT ID, int mode )
ID - Идентификатор излучателя для изменения.
mode - 1, чтобы заставить частицы вращаться в том направлении, в котором они движутся, 0, чтобы использовать нормальное вращение.
Задает начальное направление новых частиц, когда они выходят из излучателя. Это можно использовать вместе с командой SetParticlesAngle, чтобы установить диапазон изменения от этого начального направления, которое могут выбрать новые частицы. Это также устанавливает начальную скорость частиц, принимая длину вектора за единицы в секунду. Например, если начальное направление vx=10, vy=-15, частицы начнут двигаться вправо со скоростью 10 единиц в секунду и вверх со скоростью 15 единиц в секунду и будут продолжать эту скорость движения в течение всей своей жизни, если на них не будут влиять силы, добавленные с помощью AddParticlesForce.
void agk::SetParticlesDirection( UINT ID, float vx, float vy )
ID - Идентификатор излучателя для изменения.
vx - Направление x, в котором частицы будут двигаться изначально.
vy - Направление y, в котором частицы будут двигаться изначально.
Задает глубину излучателя частиц. Это касается всех частиц, даже тех, которые уже видны. Все частицы рисуются на той же глубине, что и излучатель, так что AGK может сгруппировать их в один вызов рисования для более быстрого рисования. Глубина должна быть между 0 и 10000, причем 0-это передняя часть экрана.
void agk::SetParticlesDepth( UINT ID, int depth )
ID - Идентификатор излучателя для изменения.
depth - Новое значение глубины частиц.
Устанавливает режим интерполяции для изменения цвета. Цвета могут быть установлены в определенные моменты жизни частицы с помощью AddParticlesColorKeyFrame, и частица либо смешается между этими цветами, либо быстро изменится, когда достигнет следующего изменения цвета.
void agk::SetParticlesColorInterpolation( UINT ID, int mode )
ID - Идентификатор излучателя для изменения.
mode - 1=плавная интерполяция, 0=отсутствие интерполяции
Задает диапазон направления в радианах, который частица может выбрать при первом запуске. Это берет базовое направление, заданное с помощью SetParticlesDirection, и регулирует его на случайную величину от 0 до угла/2 радиана. Например, угол 0 будет означать, что все новые частицы следуют точно в указанном ранее направлении. Угол 2*PI будет означать, что частицы могут появиться, двигаясь в любом направлении, а угол PI/2 будет означать, что частицы будут двигаться наружу в конусе радианов PI/2 от их начального положения с центром конуса в данном направлении.
void agk::SetParticlesAngleRad( UINT ID, float angle )
ID - Идентификатор излучателя для изменения.
angle - Диапазон изменения, который частица может выбрать из направления излучателя.
Задает диапазон направления в градусах, который частица может выбрать при первом запуске. Это берет базовое направление, заданное с помощью SetParticlesDirection, и регулирует его на случайную величину между 0 и углом/2 градуса. Например, угол 0 будет означать, что все новые частицы следуют точно в указанном ранее направлении. Угол 360 будет означать, что частицы могут появиться, двигаясь в любом направлении, а угол 90 будет означать, что частицы будут двигаться наружу в конусе 90 градусов от их начального положения с центром конуса в данном направлении.
void agk::SetParticlesAngle( UINT ID, float angle )
ID - Идентификатор излучателя для изменения.
angle - Диапазон изменения, который частица может выбрать из направления излучателя.
Устанавливает, обновляются ли испускаемые частицы каждый кадр. Установите значение 1, чтобы обновить частицы как обычно, и 0, чтобы приостановить их. Частицы будут продолжать быть видимыми, когда остановятся. Чтобы скрыть частицы, используйте SetParticlesVisible.
void agk::SetParticlesActive( UINT ID, int active )
ID - Идентификатор излучателя для изменения.
active - 1=нормально, 0=пауза
Сбрасывает количество испускаемых частиц, когда излучатель был установлен с максимальным количеством частиц с помощью SetParticlesMax. Вы можете проверить, когда излучатель достиг своего максимального количества, используя GetParticlesMaxReached. Если максимум установлен на -1, то эта команда не имеет никакого эффекта.
void agk::ResetParticleCount( UINT ID )
ID - Идентификатор излучателя для изменения.
Немедленно перемещает все существующие частицы на заданное смещение. Например,смещение x=3, y=5 сдвинет все частицы вправо на 3 единицы и вниз на 5 единиц. Это не влияет на излучатель частиц, но может быть использовано в сочетании с SetParticlesPosition для перемещения как излучателя, так и уже существующих частиц.
void agk::OffsetParticles( UINT ID, float x, float y )
ID - Идентификатор излучателя для изменения.
x - Расстояние для перемещения частиц в направлении X.
y - Расстояние для перемещения частиц в направлении Y.
Возвращает текущее положение Y излучателя, это точка, из которой будут появляться новые частицы. Невозможно получить положение отдельных частиц, они просто создаются, следуют по пути под влиянием сил, а затем исчезают.
float agk::GetParticlesY( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает текущее положение X излучателя, это точка, из которой будут появляться новые частицы. Невозможно получить положение отдельных частиц, они просто создаются, следуют по пути под влиянием сил, а затем исчезают.
float agk::GetParticlesX( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает 0, если данные частицы были установлены как невидимые с помощью SetParticlesVisible, или 1, если они в данный момент установлены как видимые (по умолчанию). Это не проверяет, находятся ли частицы в видимом окне просмотра.
int agk::GetParticlesVisible( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает текущий размер всех частиц в мировых координатах. Подробнее об установке размера частиц см. в разделе SetParticlesSize.
float agk::GetParticlesSize( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает 1, если излучатель испустил количество частиц, указанное в SetParticlesMax, и все испущенные частицы с тех пор умерли, в противном случае возвращает 0. Если максимальное значение равно -1, то оно всегда будет возвращать 0. Чтобы сбросить счетчик и заставить излучатель снова начать излучать, используйте ResetParticleCount.
int agk::GetParticlesMaxReached( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает текущую жизнь частиц в секундах. Невозможно получить текущую жизнь отдельных частиц. Это значение не зависит от частоты кадров.
float agk::GetParticlesLife( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает текущую частоту генерации частиц в частицах в секунду. Это значение не зависит от частоты кадров.
float agk::GetParticlesFrequency( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает 1, если излучатель частиц существует с заданным идентификатором, и 0, если нет.
int agk::GetParticlesExists( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает y-компоненту направления излучателя, которое является базовым направлением движения частиц при их создании. Частицы могут слегка изменять свое направление при излучении в зависимости от текущего значения SetParticlesAngle.
float agk::GetParticlesDirectionY( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает X-компоненту направления излучателя, которое является базовым направлением движения частиц при их создании. Частицы могут слегка изменять свое направление при излучении в зависимости от текущего значения GetParticlesAngle.
float agk::GetParticlesDirectionX( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает текущую глубину, на которой будут нарисованы все частицы. Это значение находится в диапазоне от 0 до 10000, причем 0 находится в передней части экрана.
int agk::GetParticlesDepth( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает текущий угол излучателя в радианах. Это значение представляет собой величину отклонения частицы от направления излучателя при излучении. Угол 0 означает, что отклонение отсутствует, а угол 2*PI означает, что частица может двигаться в любом направлении при испускании.
float agk::GetParticlesAngleRad( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает текущий угол излучателя в градусах. Это значение представляет собой величину отклонения частицы от направления излучателя при излучении. Угол 0 означает, что отклонение отсутствует, а угол 360 означает, что частица может двигаться в любом направлении при испускании.
float agk::GetParticlesAngle( UINT ID )
ID - Идентификатор излучателя для проверки.
Возвращает 0, если данные частицы были приостановлены с помощью SetParticlesActive, или 1, если они в данный момент обновляются как обычно (по умолчанию).
int agk::GetParticlesActive( UINT ID )
ID - Идентификатор излучателя для проверки.
Фиксация частиц на экране гарантирует, что они не будут затронуты прокруткой видового экрана.
void agk::FixParticlesToScreen( UINT ID, int mode )
ID - Идентификатор излучателя для изменения.
mode - Используйте 1 для фиксации на экране. Используйте 0, чтобы позволить частицам быть затронутыми прокруткой.
Немедленно притягивает излучатель частиц к обратному буферу в его текущем положении, размере и вращении. Это полезно, если вы хотите настроить сцену для захвата getImage. Не забудьте использовать ClearScreen для очистки любого вашего собственного рисунка перед вызовом Sync или Render для фактического кадра, иначе ваш рисунок может появиться дважды в окончательном рендеринге.
void agk::DrawParticles( UINT ID )
ID - Идентификатор излучателя для рисования.
Удаляет излучатель частиц и все его частицы. Если какие-либо частицы были в данный момент видны, они мгновенно исчезнут.
void agk::DeleteParticles( UINT ID )
ID - Идентификатор излучателя для удаления.
Создает излучатель частиц в свободном ID и в заданном месте в мировых координатах. Он возвращает идентификатор, используемый для создания излучателя. Излучатели частиц создают поток маленьких спрайтов, которые длятся фиксированное количество времени, прежде чем исчезнуть. Частицы могут подвергаться воздействию сил в течение своей жизни с помощью AddParticlesForce. Они также могут менять цвет с течением времени с помощью AddParticlesColorKeyFrame. Частицы не могут быть изменены по отдельности и вести себя как группа, используя одну и ту же текстуру и глубину. Это позволяет AGK рисовать их более эффективно, чем аналогичное количество обычных спрайтов.
UINT agk::CreateParticles( float x, float y )
void agk::CreateParticles( UINT ID, float x, float y )
x - Координата x для позиционирования этого излучателя.
y - Координата y для позиционирования этого излучателя.
ID - Идентификатор, используемый при ссылке на этот излучатель частиц.
Очищает все модификаторы размера, которые были назначены эмиттеру, частицы будут поддерживать любой размер, который они в настоящее время имеют.
void agk::ClearParticlesScales( UINT ID )
ID - Идентификатор излучателя для изменения.
Очищает все силы, назначенные этому излучателю. Все силы немедленно перестанут влиять на частицы.
void agk::ClearParticlesForces( UINT ID )
ID - Идентификатор излучателя для изменения.
Очищает все цвета, которые были назначены излучателю, частицы будут поддерживать любой цвет, который они имеют в данный момент.
void agk::ClearParticlesColors( UINT ID )
ID - Идентификатор излучателя для изменения.
Добавляет изменение размера в определенный момент жизни частицы. Значения шкалы относительны к значению, заданному SetParticlesSize, поэтому шкала 2 означает удвоение ее нормального размера, а 0,5-половину ее нормального размера. Масштаб, добавленный со временем=1, сделает частицу равной заданному размеру, когда она была жива в течение 1 секунды. Частица постепенно преобразуется из своего текущего размера в следующий.
void agk::AddParticlesScaleKeyFrame( UINT ID, float time, float scale )
ID - Идентификатор излучателя для изменения.
time - Время, за которое частицы должны стать такого размера.
scale - Масштаб относительно нормального размера частиц должен быть больше или равен 0.
Добавляет силу, которая будет действовать в данный момент в жизни каждой частицы. Например, сила, установленная для начала в момент времени 2 и окончания в момент времени 3, начнет воздействовать на частицы, когда они будут живы в течение 2 секунд. Он будет продолжать действовать на эти частицы до тех пор, пока они не оживут в течение 3 секунд. Влияние силы определяется величинами x и y, которые представляют ускорение в единицах в секунду. Например, сила с x=5 будет регулировать горизонтальную скорость частицы, добавляя 5 единиц за каждую секунду, когда сила активна, если сила активна только в течение 0,5 секунды, то частица будет двигаться на 2,5 единицы в секунду быстрее вправо. Несколько сил могут действовать на частицу одновременно, если их временные интервалы перекрываются.
void agk::AddParticlesForce( UINT ID, float starttime, float endtime, float x, float y )
ID - Идентификатор излучателя для изменения.
starttime - Время в жизни частицы, в которое эта сила должна начать действовать.
endtime - Время в жизни частицы, в которое эта сила должна прекратить свое действие.
x - х-составляющая влияния силы на скорость частицы в единицах в секунду.
y - y-составляющая влияния силы на скорость частицы в единицах в секунду.
Добавляет изменение цвета в определенный момент жизни частицы. Например, цвет, добавленный со временем=1, сделает частицу равной данному цвету, когда она была жива в течение 1 секунды. Если цветовая интерполяция включена с помощью SetParticlesColorInterpolation, частица постепенно преобразуется из своего текущего цвета в следующий. Например, если вы добавите три цвета: красный, когда время=1, зеленый, когда время=2, и синий, когда время=3, то частица начнет свою жизнь как красный (поскольку это ближайший цвет) и останется полностью красной, пока ей не исполнится 1 секунда. Когда частице от 1 до 2 секунд, она будет постепенно меняться с красного на зеленый, пока ей не исполнится 2 секунды, в этот момент она полностью зеленая. Когда частице от 2 до 3 секунд, она будет постепенно меняться от зеленого до синего, пока ей не исполнится 3 секунды, в этот момент она полностью синяя. Частица останется полностью синей до конца своей жизни, так как никакие другие цвета не были добавлены.
void agk::AddParticlesColorKeyFrame( UINT ID, float time, UINT red, UINT green, UINT blue, UINT alpha )
ID - Идентификатор излучателя для изменения.
time - Время, когда частицы должны стать такого цвета.
red - Красная составляющая нового цвета.
green - Зеленая составляющая нового цвета.
blue - Синий компонент нового цвета.
alpha - Альфа-компонент нового цвета.