Skip to content

Latest commit

 

History

History
644 lines (644 loc) · 42.5 KB

Particles.md

File metadata and controls

644 lines (644 loc) · 42.5 KB

Список методов в категории Particles:

UpdateParticles

Описание

Немедленно опережает излучатель частиц на заданное количество времени. Если вы хотите продвинуть высокочастотный излучатель на большой промежуток времени, такой как 1 секунда, вы должны вызвать эту команду несколько раз с небольшим значением времени, таким как 0,02, чтобы она создавала новые частицы партиями и равномерно распределяла их. Вызов его один раз с большим временным значением 1 секунда создал бы огромную партию частиц сразу и переместил бы их вместе как каплю вместо того, чтобы распространять их.

Определение

void agk::UpdateParticles( UINT ID, float time )

Параметры

ID - Идентификатор излучателя для проверки.
time - Время в секундах для продвижения излучателя.

Пример кода


SetParticlesVisible

Описание

Устанавливает, рисуются ли испускаемые частицы. Установите значение 1, чтобы показать частицы, и 0, чтобы скрыть их. Частицы все равно будут обновляться, пока они скрыты, вы можете остановить обновление частиц с помощью SetParticlesActive

Определение

void agk::SetParticlesVisible( UINT ID, int visible )

Параметры

ID - Идентификатор излучателя для изменения.
visible - 1=показать, 0=скрыть

Пример кода


SetParticlesVelocityRange

Описание

Устанавливает минимальный и максимальный множитель, который будет влиять на испускаемые частицы. Это может быть использовано для того, чтобы гарантировать, что при испускании частиц будут наблюдаться некоторые изменения.

Определение

void agk::SetParticlesVelocityRange( UINT ID, float v1, float v2 )

Параметры

ID - Идентификатор излучателя для изменения.
v1 - Минимальный множитель скорости.
v2 - Множитель максимальной скорости.

Пример кода


SetParticlesTransparency

Описание

Установите прозрачность частиц на определенную настройку с выбором без прозрачности, альфа-прозрачности и аддитивного смешивания. По умолчанию частицы создаются с альфа-прозрачностью.

Определение

void agk::SetParticlesTransparency( UINT ID, int mode )

Параметры

ID - Идентификатор излучателя частиц для изменения.
mode - Режим прозрачности для этих частиц: 0=выкл., 1=альфа-прозрачность, 2=аддитивное смешивание

Пример кода


SetParticlesStartZone

Описание

Задает область вокруг излучателя, в которой могут появиться новые частицы. Эти значения относятся к положению эмиттера, например, зона 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 в правом нижнем углу стартовой зоны.

Пример кода


SetParticlesSize

Описание

Задает размер всех частиц в мировых координатах. Установка большого количества частиц на большой размер будет плохо работать на мобильных устройствах с низкой скоростью заполнения (количество пикселей, которые он может нарисовать в секунду).

Определение

void agk::SetParticlesSize( UINT ID, float size )

Параметры

ID - Идентификатор излучателя для изменения.
size - Размер частиц

Пример кода


SetParticlesRotationRangeRad

Описание

Задает диапазон вращения в радианах, который частица может иметь в течение своей жизни. Когда частица создается, она начинается под углом 0 и выбирает случайную скорость вращения между углом 1 и углом 2. Затем частица будет вращаться с выбранной скоростью в течение всей своей жизни. Используйте отрицательные значения для вращения против часовой стрелки и положительные для вращения по часовой стрелке.

Определение

void agk::SetParticlesRotationRangeRad( UINT ID, float angle1, float angle2 )

Параметры

ID - Идентификатор излучателя для изменения.
angle1 - Минимальный угол дальности в радианах в секунду.
angle2 - Максимальный угол дальности в радианах в секунду.

Пример кода


SetParticlesRotationRange

Описание

Задает диапазон вращения в радианах, который частица может иметь в течение своей жизни. Когда частица создается, она начинается под углом 0 и выбирает случайную скорость вращения между углом 1 и углом 2. Затем частица будет вращаться с выбранной скоростью в течение всей своей жизни. Используйте отрицательные значения для вращения против часовой стрелки и положительные для вращения по часовой стрелке.

Определение

void agk::SetParticlesRotationRange( UINT ID, float angle1, float angle2 )

Параметры

ID - Идентификатор излучателя для изменения.
angle1 - Минимальный угол диапазона в градусах в секунду.
angle2 - Максимальный угол диапазона в градусах в секунду.

Пример кода


SetParticlesPosition

Описание

Устанавливает положение излучателя частиц. Это положение, из которого будут появляться новые частицы, и не влияет на частицы, которые уже видны.

Определение

void agk::SetParticlesPosition( UINT ID, float x, float y )

Параметры

ID - Идентификатор излучателя для изменения.
x - Новая координата x для излучателя в мировых координатах.
y - Новая координата y для излучателя в мировых координатах.

Пример кода


SetParticlesMax

Описание

Устанавливает максимальное количество частиц, которые будут испускаться. Если это значение равно -1, то число бесконечно. Излучатель будет вести подсчет количества частиц, которые он испускает, и остановится, когда будет достигнут предел. Чтобы проверить, достиг ли излучатель своего предела, используйте GetParticlesMaxReached. Чтобы сбросить счетчик и заставить его снова начать излучать, используйте ResetParticleCount.

Определение

void agk::SetParticlesMax( UINT ID, int max )

Параметры

ID - Идентификатор излучателя для изменения.
max - Максимальное количество испускаемых частиц

Пример кода


SetParticlesLife

Описание

Задает время жизни частиц после их испускания в секундах. После того, как частицы будут живы в течение заданного количества секунд, они исчезнут. Это одно из двух значений, влияющих на количество генерируемых частиц, другое-SetParticlesFrequency. Максимальное количество частиц, которое может быть на экране в любой момент времени, - это freq*life, причем freq-это количество частиц, испускаемых в секунду. Это значение не зависит от частоты кадров.

Определение

void agk::SetParticlesLife( UINT ID, float time )

Параметры

ID - Идентификатор излучателя для изменения.
time - Время в секундах, в течение которого частица видна.

Пример кода


SetParticlesImage

Описание

Устанавливает изображение, которое будет использоваться для каждой частицы. Начиная с 1083 изображений, которые могут быть загружены из субизображений, содержащихся в текстурах атласа.

Определение

void agk::SetParticlesImage( UINT ID, UINT imageID )

Параметры

ID - Идентификатор излучателя для изменения.
imageID - Идентификатор изображения, используемого для испускаемых частиц.

Пример кода


SetParticlesFrequency

Описание

Задает частоту генерации новых частиц. Значение freq указывает, сколько частиц должно быть произведено в секунду, это не зависит от частоты кадров. Это одно из двух значений, влияющих на количество генерируемых частиц, другое-SetParticlesLife. Максимальное количество частиц, которое может быть на экране в любой момент времени, - это freq*life, причем жизнь-это количество секунд, в течение которых частица живет, прежде чем исчезнуть. Это значение не зависит от частоты кадров.

Определение

void agk::SetParticlesFrequency( UINT ID, float freq )

Параметры

ID - Идентификатор излучателя для изменения.
freq - Скорость образования новых частиц в частицах в секунду.

Пример кода


SetParticlesFaceDirection

Описание

Позволяет частицам вращаться в том направлении, в котором они движутся. Это переопределяет любое использование SetParticlesRotationRange для изменения скорости вращения частиц. Вместо этого частицы всегда будут вращаться лицом к направлению своего движения.

Определение

void agk::SetParticlesFaceDirection( UINT ID, int mode )

Параметры

ID - Идентификатор излучателя для изменения.
mode - 1, чтобы заставить частицы вращаться в том направлении, в котором они движутся, 0, чтобы использовать нормальное вращение.

Пример кода


SetParticlesDirection

Описание

Задает начальное направление новых частиц, когда они выходят из излучателя. Это можно использовать вместе с командой SetParticlesAngle, чтобы установить диапазон изменения от этого начального направления, которое могут выбрать новые частицы. Это также устанавливает начальную скорость частиц, принимая длину вектора за единицы в секунду. Например, если начальное направление vx=10, vy=-15, частицы начнут двигаться вправо со скоростью 10 единиц в секунду и вверх со скоростью 15 единиц в секунду и будут продолжать эту скорость движения в течение всей своей жизни, если на них не будут влиять силы, добавленные с помощью AddParticlesForce.

Определение

void agk::SetParticlesDirection( UINT ID, float vx, float vy )

Параметры

ID - Идентификатор излучателя для изменения.
vx - Направление x, в котором частицы будут двигаться изначально.
vy - Направление y, в котором частицы будут двигаться изначально.

Пример кода


SetParticlesDepth

Описание

Задает глубину излучателя частиц. Это касается всех частиц, даже тех, которые уже видны. Все частицы рисуются на той же глубине, что и излучатель, так что AGK может сгруппировать их в один вызов рисования для более быстрого рисования. Глубина должна быть между 0 и 10000, причем 0-это передняя часть экрана.

Определение

void agk::SetParticlesDepth( UINT ID, int depth )

Параметры

ID - Идентификатор излучателя для изменения.
depth - Новое значение глубины частиц.

Пример кода


SetParticlesColorInterpolation

Описание

Устанавливает режим интерполяции для изменения цвета. Цвета могут быть установлены в определенные моменты жизни частицы с помощью AddParticlesColorKeyFrame, и частица либо смешается между этими цветами, либо быстро изменится, когда достигнет следующего изменения цвета.

Определение

void agk::SetParticlesColorInterpolation( UINT ID, int mode )

Параметры

ID - Идентификатор излучателя для изменения.
mode - 1=плавная интерполяция, 0=отсутствие интерполяции

Пример кода


SetParticlesAngleRad

Описание

Задает диапазон направления в радианах, который частица может выбрать при первом запуске. Это берет базовое направление, заданное с помощью SetParticlesDirection, и регулирует его на случайную величину от 0 до угла/2 радиана. Например, угол 0 будет означать, что все новые частицы следуют точно в указанном ранее направлении. Угол 2*PI будет означать, что частицы могут появиться, двигаясь в любом направлении, а угол PI/2 будет означать, что частицы будут двигаться наружу в конусе радианов PI/2 от их начального положения с центром конуса в данном направлении.

Определение

void agk::SetParticlesAngleRad( UINT ID, float angle )

Параметры

ID - Идентификатор излучателя для изменения.
angle - Диапазон изменения, который частица может выбрать из направления излучателя.

Пример кода


SetParticlesAngle

Описание

Задает диапазон направления в градусах, который частица может выбрать при первом запуске. Это берет базовое направление, заданное с помощью SetParticlesDirection, и регулирует его на случайную величину между 0 и углом/2 градуса. Например, угол 0 будет означать, что все новые частицы следуют точно в указанном ранее направлении. Угол 360 будет означать, что частицы могут появиться, двигаясь в любом направлении, а угол 90 будет означать, что частицы будут двигаться наружу в конусе 90 градусов от их начального положения с центром конуса в данном направлении.

Определение

void agk::SetParticlesAngle( UINT ID, float angle )

Параметры

ID - Идентификатор излучателя для изменения.
angle - Диапазон изменения, который частица может выбрать из направления излучателя.

Пример кода


SetParticlesActive

Описание

Устанавливает, обновляются ли испускаемые частицы каждый кадр. Установите значение 1, чтобы обновить частицы как обычно, и 0, чтобы приостановить их. Частицы будут продолжать быть видимыми, когда остановятся. Чтобы скрыть частицы, используйте SetParticlesVisible.

Определение

void agk::SetParticlesActive( UINT ID, int active )

Параметры

ID - Идентификатор излучателя для изменения.
active - 1=нормально, 0=пауза

Пример кода


ResetParticleCount

Описание

Сбрасывает количество испускаемых частиц, когда излучатель был установлен с максимальным количеством частиц с помощью SetParticlesMax. Вы можете проверить, когда излучатель достиг своего максимального количества, используя GetParticlesMaxReached. Если максимум установлен на -1, то эта команда не имеет никакого эффекта.

Определение

void agk::ResetParticleCount( UINT ID )

Параметры

ID - Идентификатор излучателя для изменения.

Пример кода


OffsetParticles

Описание

Немедленно перемещает все существующие частицы на заданное смещение. Например,смещение x=3, y=5 сдвинет все частицы вправо на 3 единицы и вниз на 5 единиц. Это не влияет на излучатель частиц, но может быть использовано в сочетании с SetParticlesPosition для перемещения как излучателя, так и уже существующих частиц.

Определение

void agk::OffsetParticles( UINT ID, float x, float y )

Параметры

ID - Идентификатор излучателя для изменения.
x - Расстояние для перемещения частиц в направлении X.
y - Расстояние для перемещения частиц в направлении Y.

Пример кода


GetParticlesY

Описание

Возвращает текущее положение Y излучателя, это точка, из которой будут появляться новые частицы. Невозможно получить положение отдельных частиц, они просто создаются, следуют по пути под влиянием сил, а затем исчезают.

Определение

float agk::GetParticlesY( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesX

Описание

Возвращает текущее положение X излучателя, это точка, из которой будут появляться новые частицы. Невозможно получить положение отдельных частиц, они просто создаются, следуют по пути под влиянием сил, а затем исчезают.

Определение

float agk::GetParticlesX( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesVisible

Описание

Возвращает 0, если данные частицы были установлены как невидимые с помощью SetParticlesVisible, или 1, если они в данный момент установлены как видимые (по умолчанию). Это не проверяет, находятся ли частицы в видимом окне просмотра.

Определение

int agk::GetParticlesVisible( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesSize

Описание

Возвращает текущий размер всех частиц в мировых координатах. Подробнее об установке размера частиц см. в разделе SetParticlesSize.

Определение

float agk::GetParticlesSize( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesMaxReached

Описание

Возвращает 1, если излучатель испустил количество частиц, указанное в SetParticlesMax, и все испущенные частицы с тех пор умерли, в противном случае возвращает 0. Если максимальное значение равно -1, то оно всегда будет возвращать 0. Чтобы сбросить счетчик и заставить излучатель снова начать излучать, используйте ResetParticleCount.

Определение

int agk::GetParticlesMaxReached( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesLife

Описание

Возвращает текущую жизнь частиц в секундах. Невозможно получить текущую жизнь отдельных частиц. Это значение не зависит от частоты кадров.

Определение

float agk::GetParticlesLife( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesFrequency

Описание

Возвращает текущую частоту генерации частиц в частицах в секунду. Это значение не зависит от частоты кадров.

Определение

float agk::GetParticlesFrequency( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesExists

Описание

Возвращает 1, если излучатель частиц существует с заданным идентификатором, и 0, если нет.

Определение

int agk::GetParticlesExists( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesDirectionY

Описание

Возвращает y-компоненту направления излучателя, которое является базовым направлением движения частиц при их создании. Частицы могут слегка изменять свое направление при излучении в зависимости от текущего значения SetParticlesAngle.

Определение

float agk::GetParticlesDirectionY( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesDirectionX

Описание

Возвращает X-компоненту направления излучателя, которое является базовым направлением движения частиц при их создании. Частицы могут слегка изменять свое направление при излучении в зависимости от текущего значения GetParticlesAngle.

Определение

float agk::GetParticlesDirectionX( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesDepth

Описание

Возвращает текущую глубину, на которой будут нарисованы все частицы. Это значение находится в диапазоне от 0 до 10000, причем 0 находится в передней части экрана.

Определение

int agk::GetParticlesDepth( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesAngleRad

Описание

Возвращает текущий угол излучателя в радианах. Это значение представляет собой величину отклонения частицы от направления излучателя при излучении. Угол 0 означает, что отклонение отсутствует, а угол 2*PI означает, что частица может двигаться в любом направлении при испускании.

Определение

float agk::GetParticlesAngleRad( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesAngle

Описание

Возвращает текущий угол излучателя в градусах. Это значение представляет собой величину отклонения частицы от направления излучателя при излучении. Угол 0 означает, что отклонение отсутствует, а угол 360 означает, что частица может двигаться в любом направлении при испускании.

Определение

float agk::GetParticlesAngle( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


GetParticlesActive

Описание

Возвращает 0, если данные частицы были приостановлены с помощью SetParticlesActive, или 1, если они в данный момент обновляются как обычно (по умолчанию).

Определение

int agk::GetParticlesActive( UINT ID )

Параметры

ID - Идентификатор излучателя для проверки.

Пример кода


FixParticlesToScreen

Описание

Фиксация частиц на экране гарантирует, что они не будут затронуты прокруткой видового экрана.

Определение

void agk::FixParticlesToScreen( UINT ID, int mode )

Параметры

ID - Идентификатор излучателя для изменения.
mode - Используйте 1 для фиксации на экране. Используйте 0, чтобы позволить частицам быть затронутыми прокруткой.

Пример кода


DrawParticles

Описание

Немедленно притягивает излучатель частиц к обратному буферу в его текущем положении, размере и вращении. Это полезно, если вы хотите настроить сцену для захвата getImage. Не забудьте использовать ClearScreen для очистки любого вашего собственного рисунка перед вызовом Sync или Render для фактического кадра, иначе ваш рисунок может появиться дважды в окончательном рендеринге.

Определение

void agk::DrawParticles( UINT ID )

Параметры

ID - Идентификатор излучателя для рисования.

Пример кода


DeleteParticles

Описание

Удаляет излучатель частиц и все его частицы. Если какие-либо частицы были в данный момент видны, они мгновенно исчезнут.

Определение

void agk::DeleteParticles( UINT ID )

Параметры

ID - Идентификатор излучателя для удаления.

Пример кода


CreateParticles

Описание

Создает излучатель частиц в свободном 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 - Идентификатор, используемый при ссылке на этот излучатель частиц.

Пример кода


ClearParticlesScales

Описание

Очищает все модификаторы размера, которые были назначены эмиттеру, частицы будут поддерживать любой размер, который они в настоящее время имеют.

Определение

void agk::ClearParticlesScales( UINT ID )

Параметры

ID - Идентификатор излучателя для изменения.

Пример кода


ClearParticlesForces

Описание

Очищает все силы, назначенные этому излучателю. Все силы немедленно перестанут влиять на частицы.

Определение

void agk::ClearParticlesForces( UINT ID )

Параметры

ID - Идентификатор излучателя для изменения.

Пример кода


ClearParticlesColors

Описание

Очищает все цвета, которые были назначены излучателю, частицы будут поддерживать любой цвет, который они имеют в данный момент.

Определение

void agk::ClearParticlesColors( UINT ID )

Параметры

ID - Идентификатор излучателя для изменения.

Пример кода


AddParticlesScaleKeyFrame

Описание

Добавляет изменение размера в определенный момент жизни частицы. Значения шкалы относительны к значению, заданному SetParticlesSize, поэтому шкала 2 означает удвоение ее нормального размера, а 0,5-половину ее нормального размера. Масштаб, добавленный со временем=1, сделает частицу равной заданному размеру, когда она была жива в течение 1 секунды. Частица постепенно преобразуется из своего текущего размера в следующий.

Определение

void agk::AddParticlesScaleKeyFrame( UINT ID, float time, float scale )

Параметры

ID - Идентификатор излучателя для изменения.
time - Время, за которое частицы должны стать такого размера.
scale - Масштаб относительно нормального размера частиц должен быть больше или равен 0.

Пример кода


AddParticlesForce

Описание

Добавляет силу, которая будет действовать в данный момент в жизни каждой частицы. Например, сила, установленная для начала в момент времени 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-составляющая влияния силы на скорость частицы в единицах в секунду.

Пример кода


AddParticlesColorKeyFrame

Описание

Добавляет изменение цвета в определенный момент жизни частицы. Например, цвет, добавленный со временем=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 - Альфа-компонент нового цвета.

Пример кода