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