Перемещение поведения столкновения SKSpriteNodes с физикой

Я делаю игру, в которой игрок перемещается по миру, применяя силу к игроку (должен ли игрок двигаться влево или вправо, определяется значением xVelocity, которое равно -200 или 200) в методе обновления.

override func update(currentTime: NSTimeInterval) {
    player?.physicsBody?.applyForce(CGVectorMake(xVelocity, 0))
    enemy?.physicsBody?.applyForce(CGVectorMake(enemyxVelocity, 0))
}

У меня также есть некоторые враги, которые двигаются, также используя силу по оси X. Когда враг и игрок сталкиваются, враг отбрасывается назад, и игрок может продолжать движение, но это противоположно тому, что я хочу. Я бы хотел, чтобы враги были намного сильнее по инерции и фактически отталкивали игрока с дороги.

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


person Nathan Dries    schedule 20.01.2016    source источник


Ответы (1)


Попробуйте настроить массу каждого персонажа в вашей игре.

https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKPhysicsBody_Ref/index.html#//apple_ref/occ/instp/SKPhysicsBody/mass

«Свойство массы определяет, как силы воздействуют на тело, а также какой импульс имеет тело, когда оно участвует в столкновении».

person Olivier PIERRE    schedule 20.01.2016