У меня есть проект Spritekit, над которым я работаю, где есть узел игрока, который вы перемещаете по экрану, а затем есть пули, которые стреляют в вас.Моя проблема в том, что пули попадают не только в игрока, но и в других.Я дал игроку и пулям свою собственную категорию / коллизию / маски контакта.
Я указываю здесь все различные маски категорий (некоторые из них можно игнорировать):
enum CategoryMask : UInt32 {
case playeragain = 11
case player = 1
case GBullet = 2
case BBullet = 3
case enemyships = 4
case coin = 5
case boss = 6
}
BBullet - это пули, которые стреляют в вас, а игрок - это узел, который контролирует пользователь..
Затем я присваиваю эти маски каждому узлу:
player.physicsBody?.categoryBitMask = CategoryMask.player.rawValue
player.physicsBody?.collisionBitMask = CategoryMask.BBullet.rawValue | CategoryMask.coin.rawValue
player.physicsBody?.contactTestBitMask = CategoryMask.BBullet.rawValue | CategoryMask.coin.rawValue
bullet.physicsBody?.categoryBitMask = CategoryMask.BBullet.rawValue
bullet.physicsBody?.collisionBitMask = CategoryMask.player.rawValue
bullet.physicsBody?.contactTestBitMask = CategoryMask.player.rawValue
Столкновение между пулями и игроком работает нормально, и я настроил, как обрабатывать каждое столкновение, в разделе «Началось»контактная функция.Я хотел бы указать, что я не хочу, чтобы пули сталкивались друг с другом.