PureBasic

CreateEntityBody()

Синтаксис

CreateEntityBody(#Entity , Type [, Mass [, Restitution , Friction [, SizeX , SizeY , SizeZ [, AxisX , AxisY , AxisZ]])

Описание


Создает или изменяет тип Тела (Body), связанного с указанной Сущностью (Entity).

Чтобы столкновения обрабатывались физическим движком, у Сущности должно быть Тело.
Кроме того, физический движок должен быть активирован с помощью команды EnableWorldPhysics().
Фактически, физическому движку известно только Тело, с которым он выполняет все вычисления относительно Сущности, проверяет массу, трение, и если Сущность столкнется, это вызовет её движение (отскок).

Параметры

Type Тип определяет, как физический движок будет обрабатывать эту Сущность. Этот параметр может быть одним из следующих значений:
  #PB_Entity_None       : Нет Тела связанного с Сущностью (по умолчанию)
  #PB_Entity_StaticBody : Тело (body) этой Сущности статично, т.е. её Сетка не может быть анимирована.
                          Этот режим позволяет очень точные столкновения, потому что они сделаны относительно треугольников,
                          которые составляют Сетку (также известный как tri-mesh collision). Также это быстро при столкновении с
                          телом Сущности типа 'кубоид' или 'сферы'. Идеально подходит при использовании Сетки для
                          земли или статичного мира.
#PB_Entity_PlaneBody : 'виртуальная' плоскость размещается вокруг Сущности (с теми же размерами) и используется для управления столкновениями с другими Сущностями.
#PB_Entity_ConeBody : 'виртуальный' конус, полностью охватывающий Сущность (с теми же размерами) и используется для управления столкновениями с другими Сущностями.
#PB_Entity_BoxBody : 'виртуальная' рамка (кубоид), полностью охватывающая Сущность (с теми же размерами) и используется для управления столкновениями с другими Сущностями.
#PB_Entity_SphereBody : 'виртуальная' сфера, полностью охватывающая Сущность и используется для управления столкновениями с другими Сущностями.
#PB_Entity_CylinderBody : 'виртуальный' цилиндр полностью охватывающий Сущность и используется для управления столкновениями с другими Сущностями.
#PB_Entity_CapsuleBody : 'виртуальная' капсула, полностью охватывающая Сущность и используется для управления столкновениями с другими Сущностями.
#PB_Entity_ConvexHullBody : 'виртуальная' сложная форма - полученная из реальной Сетки, размещается вокруг Сущности и используется для управления столкновениями с другими Сущностями. Этот режим медленнее, чем основные формы столкновения.
#PB_Entity_CompoundBody : 'виртуальное' составное Тело устанавливается вокруг Сущности, и это самый быстрый вид произвольной формы. Он определяется облаком вершин, но сформированная форма является наименее выпуклой формой, которая охватывает вершины.
Mass (дополн.) Масса Сущности.
Не используйте слишком большое значение, поскольку могут быть физические несоответствия (предпочтительное значение 1).
Restitution (дополн.) Коэффициент реституции скорости Сущности после столкновения (сила отскока).

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

Это значение также можно получить или установить с помощью команд GetEntityAttribute() и SetEntityAttribute().

Friction (дополн.) Трение или сила трения Сущности.
Будьте осторожны, этот параметр пропорционален массе.
Это значение также можно получить или установить с помощью команд GetEntityAttribute() и SetEntityAttribute().

SizeX, SizeY, SizeZ (дополн.) Размер ограничительной рамки (кубоида) Тела. Это относится только к следующим типам Тел:
  #PB_Entity_BoxBody     : SizeX, SizeY и SizeZ доступны.
  #PB_Entity_SphereBody  : SizeX доступен.
  #PB_Entity_ConeBody    : SizeX и SizeY доступны.
  #PB_Entity_CylinderBody: SizeX и SizeY доступны.
  #PB_Entity_CapsuleBody : SizeX, SizeY и SizeZ доступны.

AxisX, AxisY, AxisZ (дополн.) Ось ориентации Тела. Это относится только к следующим типам Тел:
  #PB_Entity_PlaneBody
  #PB_Entity_CylinderBody
  #PB_Entity_CapsuleBody 

Возвращаемое значение

Ничего.

См. также

EntityAngularFactor(), EntityCollide(), EntityCustomParameter(), EntityLinearFactor(), GetEntityAttribute(), FetchEntityMaterial(), SetEntityAttribute(), SetEntityMaterial()

Поддерживаемые OS

Все

<- CreateEntity() - Entity Index - DetachEntityObject() ->