Бросает луч через определенный спрайт (может быть физический или не физический) и сохраняет результат любого пересечения. Результаты приведения лучей могут быть получены с помощью других функций приведения лучей, таких как GetRayCastNormalX. Если луч начинается внутри фигуры, то эта фигура не будет учитываться в результатах. Эта функция уникальна тем, что она также работает со всеми спрайтами, даже с теми, у которых не включена физика, но спрайту должна быть назначена форма с помощью одной из команд sprite shape. Возвращает 1, если произошло столкновение, и 0, если нет.
int agk::SpriteRayCastSingle( UINT sprite, float x, float y, float x2, float y2 )
sprite - Идентификатор спрайта для проверки пересечения с лучом.
x - Координата X начальной точки в мировых координатах.
y - Координата Y начальной точки в мировых координатах.
x2 - Координата X конечной точки в мировых координатах.
y2 - Координата Y конечной точки в мировых координатах.
Бросает луч через все спрайты, которые имеют форму (включая физические спрайты), и сохраняет результат любого пересечения. Результаты приведения лучей могут быть получены с помощью других функций приведения лучей, таких как GetRayCastNormalX. Физические спрайты будут использовать только основную форму, назначенную спрайту с помощью SetSpriteShape, чтобы проверить, что составные формы используют PhysicsRayCast. Если луч начинается внутри фигуры, то эта фигура не будет учитываться в результатах. Спрайтам должна быть назначена форма с помощью одной из команд sprite shape, иначе она не будет включена в результаты столкновения. Эта функция медленнее, чем физические лучи, поскольку она не может использовать оптимизированные структуры, которые представляют, где находятся спрайты в мире относительно луча. Эта функция фильтрует проверяемые спрайты, поэтому проверяются только спрайты определенной группы. По умолчанию спрайты создаются в группе 0. Эта функция может отслеживать только спрайты, созданные с помощью CreateSprite, если вы вручную выделили память для спрайтов, вам нужно будет циклически просматривать список спрайтов с помощью SpriteRayCastSingle или использовать физическую версию. Возвращает 1, если произошло столкновение, и 0, если нет.
int agk::SpriteRayCastGroup( int group, float x, float y, float x2, float y2 )
group - Идентификатор группы, проверяемый на пересечение с лучом, может быть отрицательным.
x - Координата X начальной точки в мировых координатах.
y - Координата Y начальной точки в мировых координатах.
x2 - Координата X конечной точки в мировых координатах.
y2 - Координата Y конечной точки в мировых координатах.
Бросает луч через все спрайты, имеющие форму (включая физические спрайты), и сохраняет результат любого пересечения. Результаты приведения лучей могут быть получены с помощью других функций приведения лучей, таких как GetRayCastNormalX. Физические спрайты будут использовать только основную форму, назначенную спрайту с помощью SetSpriteShape, чтобы проверить, что составные формы используют PhysicsRayCast. Если луч начинается внутри фигуры, то эта фигура не будет учитываться в результатах. Спрайтам должна быть назначена форма с помощью одной из команд sprite shape, иначе она не будет включена в результаты столкновения. Эта функция медленнее, чем физика только лучей, поскольку она не может использовать оптимизированные структуры, которые представляют, где находятся спрайты в мире относительно луча. Эта функция может отслеживать только спрайты, созданные с помощью CreateSprite, если вы вручную выделили память для спрайтов, вам нужно будет циклически просматривать список спрайтов с помощью SpriteRayCastSingle или использовать физическую версию. Возвращает 1, если произошло столкновение, и 0, если нет.
int agk::SpriteRayCast( float x, float y, float x2, float y2 )
x - Координата X начальной точки в мировых координатах.
y - Координата Y начальной точки в мировых координатах.
x2 - Координата X конечной точки в мировых координатах.
y2 - Координата Y конечной точки в мировых координатах.
Бросает луч через все спрайты, которые имеют форму (включая физические спрайты), и сохраняет результат любого пересечения. Результаты приведения лучей могут быть получены с помощью других функций приведения лучей, таких как GetRayCastNormalX. Физические спрайты будут использовать только основную форму, назначенную спрайту с помощью SetSpriteShape, чтобы проверить, что составные формы используют PhysicsRayCast. Если луч начинается внутри фигуры, то эта фигура не будет учитываться в результатах. Спрайтам должна быть назначена форма с помощью одной из команд sprite shape, иначе она не будет включена в результаты столкновения. Эта функция медленнее, чем физические лучи, поскольку она не может использовать оптимизированные структуры, которые представляют, где находятся спрайты в мире относительно луча. Эта функция фильтрует проверяемые спрайты, поэтому проверяются только спрайты определенных категорий. Параметр category - это побитовое поле, которое использует младшие 16 битов для представления каждой из возможных 16 категорий, используемых при настройке спрайта. Значение по умолчанию all 1s означает, что все категории будут включены, тогда как значение all 0s означает, что никакие категории не будут включены. Вы можете установить отдельные биты, чтобы установить, какие из них должны быть проверены. Эта функция может отслеживать только спрайты, созданные с помощью CreateSprite, если вы вручную выделили память для спрайтов, вам нужно будет циклически просматривать список спрайтов с помощью SpriteRayCastSingle или использовать физическую версию. Возвращает 1, если произошло столкновение, и 0, если нет.
int agk::SpriteRayCastCategory( UINT category, float x, float y, float x2, float y2 )
category - Категории для проверки на пересечение с лучом, побитовое поле с использованием самых нижних 16 бит.
x - Координата X начальной точки в мировых координатах.
y - Координата Y начальной точки в мировых координатах.
x2 - Координата X конечной точки в мировых координатах.
y2 - Координата Y конечной точки в мировых координатах.
Переключает существование физической стены в верхней части экрана, чтобы физические объекты не покидали экран в этом направлении. Если у вас есть физические объекты за краем экрана, например, в платформенной игре, вы должны отключить эту функцию. Если вы измените смещение вида с помощью SetViewOffset, стены не будут двигаться вместе с ним, они фиксированы к миру, поэтому они будут отключены автоматически.
void agk::SetPhysicsWallTop( int mode )
mode - 0=выкл., 1=вкл.
Переключает существование физической стены справа от экрана, чтобы физические объекты не покидали экран в этом направлении. Если у вас есть физические объекты за краем экрана, например, в платформенной игре, вы должны отключить эту функцию. Если вы измените смещение вида с помощью SetViewOffset, стены не будут двигаться вместе с ним, они фиксированы к миру, поэтому они будут отключены автоматически.
void agk::SetPhysicsWallRight( int mode )
mode - 0=выкл., 1=вкл.
Переключает существование физической стены в левой части экрана, чтобы физические объекты не покидали экран в этом направлении. Если у вас есть физические объекты за краем экрана, например, в платформенной игре, вы должны отключить эту функцию. Если вы измените смещение вида с помощью SetViewOffset, стены не будут двигаться вместе с ним, они фиксированы к миру, поэтому они будут отключены автоматически.
void agk::SetPhysicsWallLeft( int mode )
mode - 0=выкл., 1=вкл.
Задает количество потоков для использования во время физики. Значение 0 или 1 отключает многопоточность, значение минус 1 выбирает значение, соответствующее количеству процессоров в устройстве для лучшей производительности. Использование значения, превышающего количество процессоров в устройстве, скорее всего, повредит производительности. По умолчанию-минус 1.
void agk::SetPhysicsThreading( int threads )
threads - Количество используемых нитей минус 1 для автоматического выбора числа, подходящего для данного устройства
Переключает существование физической стены в нижней части экрана, чтобы физические объекты не покидали экран в этом направлении. Если у вас есть физические объекты за краем экрана, например, в платформенной игре, вы должны отключить эту функцию. Если вы измените смещение вида с помощью SetViewOffset, стены не будут двигаться вместе с ним, они фиксированы к миру, поэтому они будут отключены автоматически.
void agk::SetPhysicsWallBottom( int mode )
mode - 0=выкл., 1=вкл.
Устанавливает шкалу, используемую физической системой, по сравнению с мировыми координатами. По замыслу физическая система настроена на использование 1 единицы измерения, равной 1 метру, что в случае стандартных мировых координат (100 100) означало бы, что экран в физическом моделировании равен 100 на 100 метров. Однако по своей конструкции физическая система предназначена для лучшей работы с динамическими объектами размером от 0,1 метра до 10 метров и со статическими объектами размером до 50 метров, поэтому экран масштабируется при отправке в физическую систему, по умолчанию масштаб равен 0,2, поэтому в физическом мире экран составляет 20 метров на 20 метров. Это делается исключительно для того, чтобы позволить физической системе работать в своем разработанном масштабе, позволяя использовать мировые координаты в качестве параметров, а AGK выполняет все необходимое масштабирование за кулисами. Эта функция позволяет вам изменить масштабный коэффициент, если ваше виртуальное разрешение будет отличаться от 100,100. Эта функция должна вызываться перед любыми другими физическими функциями и не должна вызываться после запуска физической системы.
void agk::SetPhysicsScale( float scale )
scale - Новое значение шкалы для использования для всех значений экрана к физике и наоборот.
Устанавливает способность динамических тел спать, когда они не двигаются, это значительно улучшает производительность, когда динамические тела расположились в своих конечных положениях. Выключение его полезно только для бенчмаркинга, когда вы хотите, чтобы процессор постоянно обрабатывал все тела. По умолчанию включено.
void agk::SetPhysicsSleeping( int mode )
mode - 0, чтобы отключить спящий режим, 1, чтобы включить его
Задает максимальное количество точек, которые будут сгенерированы в будущих полигональных физических фигурах, не влияет на уже сгенерированные фигуры, может вызываться несколько раз. Влияет только на формы, генерируемые AGK через SetSpriteShape. Должно быть от 2 до 12. Значение по умолчанию-8.
void agk::SetPhysicsMaxPolygonPoints( int points )
points - Максимальное количество точек, разрешенных в новых многоугольниках.
Задает вектор гравитации для всех спрайтов с помощью физики. Значения x и y будут масштабироваться в физическом пространстве, поэтому будут представлять только метры в секунду в квадрате, когда масштаб = 1,0, в мировом пространстве значения представляют пиксели в секунду в квадрате. Например, в шкале по умолчанию 0,2 значение SetPhysicsGravity 0,50 будет представлять 10 метров в секунду в квадрате. Гравитация-это постоянное ускорение, приложенное ко всем физическим объектам одинаково, независимо от массы. В то время как сила прилагает ускорение, пропорциональное массе объектов. Чтобы противодействовать гравитации с помощью силы, потребуется учет массы.
void agk::SetPhysicsGravity( float x, float y )
x - X-компонент вектора силы тяжести.
y - Y-компонент вектора силы тяжести.
Изменяет диапазон действия глобальной силы. Спрайты, находящиеся на большем расстоянии от положения силы, не почувствуют ее воздействия. Диапазон меньше нуля равен бесконечному диапазону.
void agk::SetPhysicsForceRange( UINT iForceIndex, float range )
iForceIndex - Идентификатор силы для изменения.
range - Новый диапазон силы.
Изменяет положение глобальной силы в мировых координатах.
void agk::SetPhysicsForcePosition( UINT iForceIndex, float x, float y )
iForceIndex - Идентификатор силы для изменения.
x - x-компонент новой позиции.
y - y-компонент новой позиции.
Изменяет силу глобальной силы. Для сил, которые исчезают, это будет сила в 1 единице от положения силы. Эта сила выражена в Ньютонах и по своим размерам похожа на гравитацию, за исключением того, что на нее влияет масса объекта. Например, для объекта массой 1 кг и силой 10 ньютонов будет воздействовать на объект так же, как гравитация, установленная на 10 м/с^2. Для массы 2 кг двигаться труднее, поэтому сила в 10 Ньютонов будет вдвое эффективнее при перемещении объекта, чем сила тяжести при 10 м/с^2.
void agk::SetPhysicsForcePower( UINT iForceIndex, float power )
iForceIndex - Идентификатор силы для изменения.
power - Новая сила силы.
Позволяет рисовать внутренние физические фигуры на экране. Если вы установили значение viewoffset на что-то отличное от 0,0, убедитесь, что ни один из ваших физических спрайтов не закреплен на экране с помощью FixSpriteToScreen, иначе отладочные фигуры не выстроятся в линию. Отладочные контуры рисуются как мировые спрайты. Отладочный вывод будет рисовать форму каждого набора физических спрайтов с помощью SetSpritePhysicsOn и всех нефизических спрайтов, которым назначена форма для команд столкновения нефизических спрайтов. Фигуры будут нарисованы в следующих цветах: Кремовый=Динамический физический объект, Зеленый=Статический физический объект, Темно-синий=Кинематический физический объект, Светло-Голубой=нефизический объект. Серый=Спящий динамический физический объект. Кроме того, физические объекты будут нарисованы как затененные контуром, нефизические объекты будут только контуром.
void agk::SetPhysicsDebugOn()
Включает и выключает непрерывное обнаружение столкновений. Это предотвращает туннелирование быстро движущихся объектов через статические тела. Чтобы предотвратить прохождение быстро движущихся объектов друг через друга, используйте SetSpritePhysicsIsBullet, когда у вас есть большое количество динамических тел, которые могут быть узким местом в физическом движке, особенно когда резьба включена, так как эта часть в настоящее время не имеет резьбы. По умолчанию он выключен.
void agk::SetPhysicsCCD( int mode )
mode - 0, чтобы отключить CCD, 1, чтобы включить его
Отключает рисование внутренних физических фигур на экране.
void agk::SetPhysicsDebugOff()
Задает целевую точку в мировых координатах, к которой мышиный сустав будет пытаться переместить прикрепленное тело. Работает только на мышиных суставах.
void agk::SetJointMouseTarget( UINT iJointIndex, float x, float y )
iJointIndex - Идентификатор соединения для изменения.
x - Координата x новой цели.
y - Координата y новой цели.
Устанавливает максимальное усилие, которое может быть использовано суставом мыши для перемещения объекта. По умолчанию это значение равно 0
void agk::SetJointMouseMaxForce( UINT iJointIndex, float maxForce )
iJointIndex - Идентификатор соединения для изменения.
maxForce - Максимальное усилие, чтобы позволить.
Включает двигатель для соединения так, чтобы оно двигалось непрерывно, пока не будет предотвращено столкновение. Работает на линейных/колесных соединениях, призматических соединениях и вращающихся соединениях. Двигатели работают, прикладывая усилие для достижения заданной скорости, и если они встречают сопротивление, то увеличивают усилие до тех пор, пока двигатель не будет двигаться с желаемой скоростью или не будет достигнута максимальная заданная сила, после чего двигатель остановится, продолжая прикладывать максимальную силу. В случае линейных соединений двигатель работает в одном направлении и либо толкает прикрепленные спрайты вместе, либо раздвигает.
void agk::SetJointMotorOn( UINT iJointIndex, float speed, float maxForce )
iJointIndex - Идентификатор соединения для изменения.
speed - Желаемая скорость двигателя.
maxForce - Максимальная сила, которую он может использовать для достижения скорости.
Выключает двигатель, ранее приложенный к шарниру, который его поддерживает. Работает на линейных соединениях, призматических соединениях и револьверных соединениях.
void agk::SetJointMotorOff( UINT iJointIndex )
iJointIndex - Идентификатор соединения для изменения.
Отключает ограничения для суставов, которые их поддерживают. Работает на призматических и револьверных соединениях.
void agk::SetJointLimitOff( UINT iJointIndex )
iJointIndex - Идентификатор соединения для изменения.
Демпфирование можно использовать, чтобы сделать сустав мягким, как пружина. Частота задается в герцах и обычно должна быть меньше половины частоты шага физики. Например, если fps равен 60, то частота должна быть меньше 30. Коэффициент демпфирования должен быть между 0 и 1, но может быть и больше. Это можно использовать только на дистанционных соединениях, сварных соединениях, соединениях линии/колеса и соединениях мыши. По умолчанию расстояние и сварные соединения имеют коэффициент демпфирования и частоту 0, что делает соединение жестким. По умолчанию суставы мыши имеют частоту 5 и коэффициент демпфирования 0,7. По умолчанию линейные/колесные соединения имеют частоту 2 и коэффициент демпфирования 0,7.
void agk::SetJointDamping( UINT iJointIndex, float dampingRatio, float frequency )
iJointIndex - Идентификатор соединения для изменения.
dampingRatio - Коэффициент демпфирования для использования, как правило, находится в диапазоне от 0 до 1
frequency - Частота колебаний, должна быть меньше половины частоты кадров
Работает на призматических и револьверных соединениях. Устанавливает предел, которого этот сустав может достичь до остановки, для вращающихся суставов это основано на углах, для других-на длине. По умолчанию сустав не имеет ограничений.
void agk::SetJointLimitOn( UINT iJointIndex, float lowerLimit, float upperLimit )
iJointIndex - Идентификатор соединения для изменения.
lowerLimit - Наименьшая степень, до которой может дотянуться сустав.
upperLimit - Наибольшей степени, которую может достичь сустав.
Бросает луч через все физические объекты, включая спрайты, у которых включена физика, и сохраняет ближайший предмет, попавший в цель. Результаты приведения лучей могут быть получены с помощью других функций приведения лучей, таких как GetRayCastNormalX. Если луч начинается внутри фигуры, то эта фигура не будет учитываться в результатах. Эта функция фильтрует проверяемые спрайты, поэтому проверяются только спрайты определенной группы, а значение группы 0 означает, что будут проверены все группы. Возвращает 1, если произошло столкновение, и 0, если нет.
int agk::PhysicsRayCastGroup( int group, float x, float y, float x2, float y2 )
group - Идентификатор группы, проверяемый на пересечение с лучом, может быть отрицательным.
x - Координата X начальной точки в мировых координатах.
y - Координата Y начальной точки в мировых координатах.
x2 - Координата X конечной точки в мировых координатах.
y2 - Координата Y конечной точки в мировых координатах.
Бросает луч через все физические объекты, включая спрайты, у которых включена физика, и сохраняет ближайший предмет, попавший в цель. Результаты приведения лучей могут быть получены с помощью других функций приведения лучей, таких как GetRayCastNormalX. Если луч начинается внутри фигуры, то эта фигура не будет учитываться в результатах. Эта функция фильтрует проверяемые спрайты, поэтому проверяются только спрайты определенных категорий. Параметр category - это побитовое поле, которое использует младшие 16 битов для представления каждой из возможных 16 категорий, используемых при настройке спрайта. Значение по умолчанию all 1s означает, что все категории будут включены, тогда как значение all 0s означает, что никакие категории не будут включены. Вы можете установить отдельные биты, чтобы установить, какие из них должны быть проверены. Возвращает 1, если произошло столкновение, и 0, если нет.
int agk::PhysicsRayCastCategory( UINT category, float x, float y, float x2, float y2 )
category - Категории для проверки на пересечение с лучом, побитовое поле с использованием самых нижних 16 бит.
x - Координата X начальной точки в мировых координатах.
y - Координата Y начальной точки в мировых координатах.
x2 - Координата X конечной точки в мировых координатах.
y2 - Координата Y конечной точки в мировых координатах.
Бросает луч через все физические объекты, включая спрайты, у которых включена физика, и сохраняет ближайший предмет, попавший в цель. Результаты приведения лучей могут быть получены с помощью других функций приведения лучей, таких как GetRayCastNormalX. Если луч начинается внутри фигуры, то эта фигура не будет учитываться в результатах. Возвращает 1, если произошло столкновение, и 0, если нет.
int agk::PhysicsRayCast( float x, float y, float x2, float y2 )
x - Координата X начальной точки в мировых координатах.
y - Координата Y начальной точки в мировых координатах.
x2 - Координата X конечной точки в мировых координатах.
y2 - Координата Y конечной точки в мировых координатах.
Циклически просматривает список контактов только для данного спрайта. Возвращает 1 если контакт существует, вы можете получить другой спрайт, вовлеченный в этот контакт, используя GetSpriteContactSpriteID2, вы можете перейти к следующему контакту, снова вызвав эту команду, она вернет 0, когда больше контактов не будет. Работает только на спрайтах, настроенных для физики.
int agk::GetSpriteNextContact( )
Циклически просматривает список контактов только для данного спрайта. Возвращает 1 если контакт существует, вы можете получить другой спрайт, вовлеченный в этот контакт, используя GetSpriteContactSpriteID2, вы можете перейти к следующему контакту с GetSpriteNextContact. Работает только на спрайтах, настроенных для физики. Возвращает 0, если контактов нет.
int agk::GetSpriteFirstContact( UINT iSprite1 )
iSprite1 - Спрайт для проверки физических контактов.
Возвращает координату Y точки контакта в мировых координатах.
float agk::GetSpriteContactWorldY( )
Возвращает координату X точки контакта в мировых координатах.
float agk::GetSpriteContactWorldX( )
Возвращает идентификатор другого спрайта, участвующего в этом контакте.
UINT agk::GetSpriteContactSpriteID2( )
Возвращает координату X точки пересечения последней проверки приведения луча. Результат - в мировых координатах.
float agk::GetRayCastX()
Возвращает компонент Y нормали самой последней проверки приведения луча. Это не будет единичный вектор, так как он был преобразован в мировые координаты.
float agk::GetRayCastNormalY()
Возвращает X-компоненту нормали самой последней проверки приведения луча. Это не будет единичный вектор, так как он был преобразован в мировые координаты.
float agk::GetRayCastNormalX()
Возвращает долю луча, пройденного до достижения столкновения. 0 означает начало луча, а 1.0-его конец.
float agk::GetRayCastFraction()
Возвращает координату Y точки пересечения последней проверки приведения луча. Результат - в мировых координатах.
float agk::GetRayCastY()
Возвращает идентификатор спрайта, попавшего в самую последнюю проверку ray cast. Если луч попал в не спрайтовую фигуру, то будет возвращено 0.
UINT agk::GetRayCastSpriteID( )
Возвращает количество островов, обработанных решателем на последнем шаге
int agk::GetPhysicsIslandCount()
Возвращает количество миллисекунд, затраченных в решателе
float agk::GetPhysicsSolveTime()
Возвращает 1 если контакт существует, вы можете получить спрайты, вовлеченные в этот контакт, используя GetContactSpriteID1 и GetContactSpriteID2, вы можете перейти к следующему контакту, снова вызвав эту команду, когда контактов больше не будет, она вернет 0.
int agk::GetNextContact()
Возвращает величину крутящего момента, приложенного к соединению на последнем временном шаге. Вы можете использовать это для обнаружения больших сил и удаления соединения, чтобы имитировать разрыв. Крутящий момент применяется к соединениям, которые вращаются, таким как вращающиеся соединения.
float agk::GetJointReactionTorque( UINT iJointIndex )
iJointIndex - Идентификатор сустава для проверки.
Возвращает величину силы, приложенной к соединению в направлении Y на последнем временном шаге. Вы можете использовать это для обнаружения больших сил и удаления соединения, чтобы имитировать разрыв.
float agk::GetJointReactionForceY( UINT iJointIndex )
iJointIndex - Идентификатор сустава для проверки.
Возвращает величину силы, приложенной к соединению в направлении X на последнем временном шаге. Вы можете использовать это для обнаружения больших сил и удаления соединения, чтобы имитировать разрыв.
float agk::GetJointReactionForceX( UINT iJointIndex )
iJointIndex - Идентификатор сустава для проверки.
Возвращает 1, если указанное соединение все еще существует, и 0 в противном случае. Стыки могут быть удалены системой.
int agk::GetJointExists( UINT iJointIndex )
iJointIndex - Идентификатор сустава для проверки.
Циклически просматривает список всех контактов, обнаруженных на последнем шаге физики. Возвращает 1 если контакт существует, вы можете получить спрайты, участвующие в этом контакте, используя GetContactSpriteID1 и GetContactSpriteID2, вы можете перейти к следующему контакту с помощью GetNextContact. Возвращает 0, если контактов нет.
int agk::GetFirstContact()
Возвращает положение X точки контакта в мировых координатах.
float agk::GetContactWorldX()
Возвращает идентификатор второго спрайта, участвующего в этом контакте. Если эта половина контакта находится с элементом, не связанным со спрайтом, то это вернет 0.
UINT agk::GetContactSpriteID2()
Возвращает идентификатор первого спрайта, участвующего в этом контакте. Если эта половина контакта находится с элементом, не связанным со спрайтом, то это вернет 0.
UINT agk::GetContactSpriteID1()
Возвращает положение точки контакта Y в мировых координатах.
float agk::GetContactWorldY()
Создает соединение шкива между двумя спрайтами. Это вторая половина двухкомандной установки. Из-за количества требуемых параметров вы должны сначала вызвать CreatePulleyJoint2 с начальным набором параметров для создания соединения. Эта команда возвращает идентификатор нового соединения.
UINT agk::FinishPulleyJoint( float gnd1x, float gnd1y, float gnd2x, float gnd2y, float a1x, float a1y, float a2x, float a2y )
gnd1x - Координата x первой наземной точки
gnd1y - Координата y первой наземной точки
gnd2x - Координата x второй точки заземления
gnd2y - Координата y второй точки заземления
a1x - Координата x первой опорной точки
a1y - Координата y первой опорной точки
a2x - Координата x второй опорной точки
a2y - Координата y второй опорной точки
Удаляет указанную глобальную силу.
void agk::DeletePhysicsForce( UINT iForceIndex )
iForceIndex - Идентификатор силы для удаления.
Удаляет соединение и позволяет соединенным спрайтам снова свободно перемещаться. Стыки следует удалять перед спрайтами. Зубчатые соединения должны быть удалены до тех соединений, от которых они зависят. Удаление несуществующего соединения не приведет к ошибке.
void agk::DeleteJoint( UINT iJointIndex )
iJointIndex - Идентификатор соединения для удаления.
Создает сварное соединение между двумя спрайтами. Сварное соединение пытается ограничить все относительные перемещения и вращения между двумя спрайтами. Укажите единственную опорную точку в мировых координатах со спрайтами, уже находящимися в нужных позициях. Соединение не является идеальным креплением, и при достаточно большом усилии спрайты могут сдвинуться с места. Точка привязки может быть смещена от центральных положений спрайта. Соединение может быть удалено системой, если какой-либо из спрайтов, которые он соединяет, будет удален.
void agk::CreateWeldJoint( UINT iJointIndex, UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, int colConnected )
UINT agk::CreateWeldJoint( UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, int colConnected )
iJointIndex - Идентификатор, который будет использоваться для этого сустава.
iSpriteIndex1 - Идентификатор первого спрайта, который присоединится.
iSpriteIndex2 - Идентификатор второго спрайта, к которому нужно присоединиться.
x - Координата x опорной точки.
y - Координата y опорной точки.
colConnected - Установите, могут ли два спрайта, соединенные соединением, сталкиваться друг с другом, 0=нет, 1=да.
Создает соединение веревки между двумя спрайтами. Канатное соединение обеспечивает максимальное расстояние между спрайтами без каких-либо других ограничений. Это не мешает им сближаться. Укажите две опорные точки в мировых координатах с максимальной длиной, которую вы хотите разрешить, текущее положение спрайтов не влияет на инициализацию соединения. Опорные точки могут быть смещены от позиций спрайтов. Соединение может быть удалено системой, если какой-либо из спрайтов, которые он соединяет, будет удален.
UINT agk::CreateRopeJoint( UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, float x2, float y2, float maxLength, int colConnected )
void agk::CreateRopeJoint( UINT iJointIndex, UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, float x2, float y2, float maxLength, int colConnected )
iSpriteIndex1 - Идентификатор первого спрайта, который присоединится.
iSpriteIndex2 - Идентификатор второго спрайта, к которому нужно присоединиться.
x - Координата x опорной точки спрайта 1.
y - Координата y якорной точки спрайта 1.
x2 - Координата x опорной точки спрайта 2.
y2 - Координата y опорной точки спрайта 2.
maxLength - Максимальная длина, допустимая между опорными точками спрайта.
colConnected - Установите, могут ли два спрайта, соединенные соединением, сталкиваться друг с другом, 0=нет, 1=да.
iJointIndex - Идентификатор, который будет использоваться для этого сустава.
Создает революционное соединение между двумя спрайтами. Поворотное соединение позволяет спрайтам вращаться только вокруг заданной точки. Укажите единственную опорную точку в мировых координатах, где спрайты уже находятся в нужном относительном положении. Точка привязки может быть смещена от центральных положений спрайта. Идентификатор соединения будет возвращен для ссылки на это соединение позже, соединение может быть удалено системой, если какой-либо из спрайтов, которые оно соединяет, будет удален. Это соединение поддерживает двигатели и ограничения.
UINT agk::CreateRevoluteJoint( UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, int colConnected )
void agk::CreateRevoluteJoint( UINT iJointIndex, UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, int colConnected )
iSpriteIndex1 - Идентификатор первого спрайта, который присоединится.
iSpriteIndex2 - Идентификатор второго спрайта, к которому нужно присоединиться.
x - Координата x опорной точки.
y - Координата y опорной точки.
colConnected - Установите, могут ли два спрайта, соединенные соединением, сталкиваться друг с другом, 0=нет, 1=да.
iJointIndex - Идентификатор, который будет использоваться для этого сустава.
Создает соединение шкива между двумя спрайтами. Это первая половина двухкомандной установки. Из - за количества требуемых параметров вы должны вызвать FinishPulleyJoint с остальными параметрами для создания соединения. Эта команда ничего не возвращает, идентификатор соединения возвращается FinishPulleyJoint.
void agk::CreatePulleyJoint2( UINT iSpriteIndex1, UINT iSpriteIndex2, float ratio, int colConnected )
iSpriteIndex1 - Идентификатор первого спрайта, который присоединится.
iSpriteIndex2 - Идентификатор второго спрайта, к которому нужно присоединиться.
ratio - Соотношение между двумя сторонами шкива.
colConnected - Установите, могут ли два спрайта, соединенные соединением, сталкиваться друг с другом, 0=нет, 1=да.
Создает соединение шкива между двумя спрайтами. Опорные точки-это координаты мирового пространства, которые прикрепляют соединение к спрайту, опорные точки не обязательно должны находиться в центре спрайта или где-то рядом с ним, но эта точка станет новым центром вращения на то время, пока спрайт прикреплен к шкиву. Точки заземления находятся там, где трос шкива прикрепится к воображаемым шкивам и останется неподвижным в течение всего срока службы соединения, они не должны находиться в одном и том же месте. Значение коэффициента определяет передаточное отношение между двумя сторонами шкива, например, значение 2 будет означать, что спрайт 1 движется с удвоенной скоростью спрайта 2, но будет испытывать половину силы, приложенной к спрайту 2.
void agk::CreatePulleyJoint( UINT iJointIndex, UINT iSpriteIndex1, UINT iSpriteIndex2, float gnd1x, float gnd1y, float gnd2x, float gnd2y, float a1x, float a1y, float a2x, float a2y, float ratio, int colConnected )
iJointIndex - Идентификатор, который будет использоваться для этого сустава.
iSpriteIndex1 - Идентификатор первого спрайта, который присоединится.
iSpriteIndex2 - Идентификатор второго спрайта, к которому нужно присоединиться.
gnd1x - Координата x точки заземления для спрайта 1.
gnd1y - Координата y точки заземления для спрайта 1.
gnd2x - Координата x точки заземления для спрайта 2.
gnd2y - Координата y точки заземления для спрайта 2.
a1x - Координата x опорной точки для спрайта 1.
a1y - Координата y опорной точки для спрайта 1.
a2x - Координата x опорной точки для спрайта 2.
a2y - Координата y опорной точки для спрайта 2.
ratio - Соотношение между двумя сторонами шкива.
colConnected - Установите, могут ли два спрайта, соединенные соединением, сталкиваться друг с другом, 0=нет, 1=да.
Создает призматическое соединение между двумя спрайтами. Призматическое соединение позволяет спрайтам двигаться только вдоль заданной оси относительно друг друга. Его можно представить как поршень, на каждом конце которого спрайты не могут вращаться. Это похоже на линейное соединение, за исключением того, что предотвращается относительное вращение. Укажите единственную опорную точку в мировых координатах, чтобы спрайты уже находились в нужном относительном положении, на минимальном расстоянии поршня. С этого момента спрайтам будет позволено разделяться вдоль заданной оси и вращаться как единое целое, но не вращаться относительно друг друга. Точка привязки может быть смещена от центральных положений спрайта. Идентификатор соединения будет возвращен для ссылки на это соединение позже, соединение может быть удалено системой, если какой-либо из спрайтов, которые оно соединяет, будет удален. Это соединение поддерживает двигатели и ограничения.
UINT agk::CreatePrismaticJoint( UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, float vx, float vy, int colConnected )
void agk::CreatePrismaticJoint( UINT iJointIndex, UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, float vx, float vy, int colConnected )
iSpriteIndex1 - Идентификатор первого спрайта, который присоединится.
iSpriteIndex2 - Идентификатор второго спрайта, к которому нужно присоединиться.
x - Координата x опорной точки.
y - Координата y опорной точки.
vx - Компонент x оси.
vy - Компонент y оси.
colConnected - Установите, могут ли два спрайта, соединенные соединением, сталкиваться друг с другом, 0=нет, 1=да.
iJointIndex - Идентификатор, который будет использоваться для этого сустава.
Создает глобальную силу, которая влияет на все физические спрайты. Можно настроить либо на привлечение, либо на отталкивание спрайтов из определенного места. Он возвращает идентификатор силы, который можно использовать для последующего изменения или удаления силы. Силы продолжают действовать до тех пор, пока они не будут удалены.
UINT agk::CreatePhysicsForce( float x, float y, float power, float limit, float range, int fade )
x - Положение x расположения силы в мировых координатах.
y - Положение y расположения силы в мировых координатах.
power - Сила силы в 1 единице от точки силы для затухающих сил или сила во все времена для не затухающих.
limit - Применяется только к силам затухания, максимальная сила, которая будет применена к спрайту, используется, когда спрайт находится ближе 1 единицы.
range - Диапазон, на который может действовать эта сила, спрайты больше этого расстояния от точки силы не ощущают никаких эффектов. меньше 0 означает бесконечный диапазон.
fade - Установите значение 1, если сила должна быть слабее, когда спрайты находятся дальше от точки силы, и 0, если сила равна на всех расстояниях.
Создает соединение мыши между точкой и спрайтом. Это обычно используется при перетаскивании фигуры указателем мыши и попытке переместить спрайт в заданную точку с помощью силы до максимального заданного значения. Укажите точку привязки в мировых координатах, которая будет выступать в качестве начальной точки удержания спрайта. Любое дальнейшее изменение в целевом положении будет пытаться переместить эту точку спрайта в новое место. Используйте SetJointMouseTarget для изменения местоположения целевой позиции.
void agk::CreateMouseJoint( UINT iJointIndex, UINT iSpriteIndex, float x, float y, float maxForce )
UINT agk::CreateMouseJoint( UINT iSpriteIndex, float x, float y, float maxForce )
iJointIndex - Идентификатор, который будет использоваться для этого сустава.
iSpriteIndex - Идентификатор спрайта для перемещения.
x - Координата x начальной точки привязки на спрайте.
y - Координата y начальной точки привязки на спрайте.
maxForce - Максимальное усилие, которое сустав может использовать для перемещения спрайта.
Создает соединение линий между двумя спрайтами. Соединение линий позволяет спрайтам двигаться только вдоль заданной оси относительно друг друга, свободно вращаясь на обоих концах. Он похож на призматический шарнир, за исключением того, что допускается относительное вращение. Укажите единственную опорную точку в мировых координатах со спрайтами уже в нужном относительном положении, на минимальном расстоянии поршня. С этого момента спрайтам будет позволено разделиться вдоль заданной оси относительно друг друга. Точка привязки может быть смещена от центральных положений спрайта. Идентификатор соединения будет возвращен для ссылки на это соединение позже, соединение может быть удалено системой, если какой-либо из спрайтов, которые оно соединяет, будет удален. Это соединение поддерживает двигатели и ограничения. Box2D переименовал это соединение в Колесное соединение, и теперь оно содержит пружинный компонент для имитации колеса автомобиля. Имя команды AGK останется прежним для обратной совместимости, однако функциональность может измениться
UINT agk::CreateLineJoint( UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, float vx, float vy, int colConnected )
void agk::CreateLineJoint( UINT iJointIndex, UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, float vx, float vy, int colConnected )
iSpriteIndex1 - Идентификатор первого спрайта, который присоединится.
iSpriteIndex2 - Идентификатор второго спрайта, к которому нужно присоединиться.
x - Координата x опорной точки.
y - Координата y опорной точки.
vx - Компонент x оси.
vy - Компонент y оси.
colConnected - Установите, могут ли два спрайта, соединенные соединением, сталкиваться друг с другом, 0=нет, 1=да.
iJointIndex - Идентификатор, который будет использоваться для этого сустава.
Создает дистанционное соединение между двумя спрайтами. Дистанционное соединение удерживает спрайты на определенном расстоянии друг от друга, позволяя им свободно вращаться вокруг опорных точек. Укажите две опорные точки в мировых координатах, чтобы спрайты уже находились на нужном расстоянии друг от друга. Опорные точки могут быть смещены от позиций спрайтов. Соединение может быть удалено системой, если какой-либо из спрайтов, которые он соединяет, будет удален.
void agk::CreateDistanceJoint( UINT iJointIndex, UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, float x2, float y2, int colConnected )
UINT agk::CreateDistanceJoint( UINT iSpriteIndex1, UINT iSpriteIndex2, float x, float y, float x2, float y2, int colConnected )
iJointIndex - Идентификатор, который будет использоваться для этого сустава.
iSpriteIndex1 - Идентификатор первого спрайта, который присоединится.
iSpriteIndex2 - Идентификатор второго спрайта, к которому нужно присоединиться.
x - Координата x опорной точки спрайта 1.
y - Координата y якорной точки спрайта 1.
x2 - Координата x опорной точки спрайта 2.
y2 - Координата y опорной точки спрайта 2.
colConnected - Установите, могут ли два спрайта, соединенные соединением, сталкиваться друг с другом, 0=нет, 1=да.
Создает зубчатое соединение между двумя существующими соединениями. Зубчатое соединение позволяет внешнему виду двух существующих соединений быть зафиксированными вместе в идеальном трении. Спрайты, которые будут соединены, будут спрайтом 2 на обоих суставах, спрайт 1 на обоих суставах должен быть статическим спрайтом. Идентификатор соединения будет возвращен для ссылки на это соединение позже, соединение может быть удалено системой, если какой-либо из спрайтов, которые оно соединяет, будет удален. Это соединение должно быть удалено до того, как будут удалены все соединения, от которых оно зависит.
UINT agk::CreateGearJoint( UINT iJoint1, UINT iJoint2, float ratio )
void agk::CreateGearJoint( UINT iJointIndex, UINT iJoint1, UINT iJoint2, float ratio )
iJoint1 - Идентификатор первого соединения, к которому нужно присоединиться.
iJoint2 - Идентификатор второго соединения для соединения.
ratio - Передаточное число, используемое при перемещении одного шарнира от другого.
iJointIndex - Идентификационный номер зубчатого соединения.