Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы SceneKit ссылка класса SCNPhysicsVehicle

Опции
Развертывание Target:

На этой странице
Язык:

SCNPhysicsVehicle

SCNPhysicsVehicle объект изменяет моделирование SceneKit организации физики так, чтобы это вело себя как автомобиль, мотоцикл или другой колесный механизм.

Для создания механизма определяйте организацию физики как ее шасси и массив SCNPhysicsVehicleWheel объекты как его колеса. Для каждого колеса Вы определяете физические характеристики, такие как приостановка и тяга, и связываете узел в Вашей сцене для обеспечения размера колеса и визуального представления. После построения механизма можно управлять им с точки зрения ускорения, торможения и регулирования.

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

Наследование


Оператор импорта


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


Доступный в OS X v10.10 и позже.
  • Создает поведение механизма.

    Объявление

    Swift

    convenience init(chassisBody chassisBody: SCNPhysicsBody!, wheels wheels: [AnyObject])

    Objective C

    + (instancetype)vehicleWithChassisBody:(SCNPhysicsBody *)chassisBody wheels:(NSArray *)wheels

    Параметры

    chassisBody

    Организация физики для служения в качестве шасси механизма.

    wheels

    Массив SCNPhysicsVehicleWheel объекты, представляющие колеса механизма. Механизм должен иметь по крайней мере одно колесо.

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

    Новое поведение механизма.

    Обсуждение

    Каждый объект в wheels выстройте связывает узел с колесом для служения в качестве его визуального представления и определяет свойства для физических характеристик колеса. Каждый объект колеса должен сослаться на уникальный узел, который должен быть дочерним элементом узла, содержащего организацию физики, используемую для шасси механизма. Как правило, Вы загружаете иерархию узла, представляющую механизм и все его колеса от файла сцены, и затем определяете, какие узлы служат организацией и колесами.

    Для поведения вступить в силу, необходимо добавить его к моделированию физики путем вызова addBehavior: метод на Вашей сцене SCNPhysicsWorld объект.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • chassisBody chassisBody Свойство

    Организация физики, представляющая шасси механизма. (только для чтения)

    Объявление

    Swift

    var chassisBody: SCNPhysicsBody! { get }

    Objective C

    @property(nonatomic, readonly) SCNPhysicsBody *chassisBody

    Обсуждение

    Шасси механизма должно быть динамической организацией.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • колеса колеса Свойство

    Массив SCNPhysicsVehicleWheel объекты, представляющие колеса механизма. (только для чтения)

    Объявление

    Swift

    var wheels: [AnyObject]! { get }

    Objective C

    @property(nonatomic, readonly) NSArray *wheels

    Обсуждение

    Можно динамично изменить приостановку и свойства тяги колеса, подключенного к механизму при помощи соответствия SCNPhysicsVehicleWheel возразите или при помощи кодирования значения ключа с keypath формы wheels[index].propertyName. Например, следующий код изменяет размер первого колеса, присоединенного к механизму, моделируя неработающую шину:

    Swift

    • let vehicle = SCNPhysicsVehicle(chassisBody: car, wheels: wheels)
    • vehicle.setValue(0.1, forKeyPath: "wheels[0].radius")

    Objective C

    • SCNPhysicsVehicle *vehicle = [SCNPhysicsVehicle vehicleWithChassisBody:car wheels:wheels];
    • [vehicle setValue:@0.1 forKeyPath:@"wheels[0].radius"];

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Применяет силу между указанным колесом и землей под механизмом.

    Объявление

    Swift

    func applyEngineForce(_ value: CGFloat, forWheelAtIndex index: Int)

    Objective C

    - (void)applyEngineForce:(CGFloat)value forWheelAtIndex:(NSInteger)index

    Параметры

    value

    Величина силы, в ньютонах.

    index

    Индекс колеса, применяющего силу.

    Обсуждение

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

    Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.

    Вызов этого метода применяет силу для одного шага (или кадр) моделирования физики. Для непрерывного ускорения механизма вызовите этот метод снова на subequent шагах моделирования (например, от делегата средства рендеринга сцены renderer:updateAtTime: метод), пока механизм не достигает Вашей желаемой скорости.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Применяет силу между указанным колесом и землей под механизмом.

    Объявление

    Swift

    func applyBrakingForce(_ value: CGFloat, forWheelAtIndex index: Int)

    Objective C

    - (void)applyBrakingForce:(CGFloat)value forWheelAtIndex:(NSInteger)index

    Параметры

    value

    Величина крутящего момента, в ньютон-метрах.

    index

    Индекс колеса, применяющего силу.

    Обсуждение

    Применение тормозящего усилия заставляет колесо замедляться независимо от направления, в котором это в настоящее время вращается.

    Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.

    Вызов этого метода применяет тормозящее усилие для одного шага (или кадр) моделирования физики. Для непрерывного замедления механизма вызовите этот метод снова на subequent шагах моделирования (например, от делегата средства рендеринга сцены renderer:updateAtTime: метод), пока механизм не останавливает или достигает Вашей желаемой скорости.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Вертится указанное колесо вокруг его руководящей оси.

    Объявление

    Swift

    func setSteeringAngle(_ value: CGFloat, forWheelAtIndex index: Int)

    Objective C

    - (void)setSteeringAngle:(CGFloat)value forWheelAtIndex:(NSInteger)index

    Параметры

    value

    Угол для установки колеса в относительно его руководящей оси, в радианах.

    index

    Индекс, в механизме wheels массив, колеса, которое будет вертеться.

    Обсуждение

    Углы поворота относительно колеса steeringAxis вектор. С руководящей осью значения по умолчанию {0.0, -1.0, 0.0}, угол поворота 0.0 представляет нейтральное регулирование, положительные значения регулируют механизм вправо, и отрицательные величины держатся налево.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Скорость относительно земли механизма, в километрах в час. (только для чтения)

    Объявление

    Swift

    var speedInKilometersPerHour: CGFloat { get }

    Objective C

    @property(nonatomic, readonly) CGFloat speedInKilometersPerHour

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.