Swift - Как добавить границы сцены для определенных c узлов? - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь разработать игру IOS с использованием SpriteKit, и я хочу добавить физическое тело на сцену, чтобы игрок не смог go пересечь края экрана. В то же время я хочу, чтобы некоторые узлы (например, бомбы, падающие с неба) могли go проходить по краям экрана.

Я знаю, что могу использовать следующую строку для добавьте физическое тело на сцену:

self.physicsBody = SKPhysicsBody (edgeLoopFrom: self.frame)

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

1 Ответ

1 голос
/ 08 апреля 2020

Ответ относительно categoryBitMask и collisionBitMask задействованных физических c тел.

Например, для сцены:

if let scenePB = scene.physicsBody {
    scenePB.categoryBitMask = 1
    scenePB.collisionBitMask = 2 // collides with player
}

Для игрока:

if let playerPB = player.physicsBody {
    playerPB.categoryBitMask = 2
    playerPB.collisionBitMask = 1+4 // collides with scene and bombs
}

Для любой бомбы:

if let bombPB = bomb.physicsBody {
    bombPB.categoryBitMask = 4
    bombPB.collisionBitMask = 2 // collides with player
}
...