Skip to content

Latest commit

 

History

History
960 lines (960 loc) · 76.6 KB

2DPhysics.md

File metadata and controls

960 lines (960 loc) · 76.6 KB

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

Пример кода