#ios #xcode #sprite-kit #collision-detection
#iOS #xcode #sprite-kit #обнаружение столкновений
Вопрос:
Я хочу, чтобы два узла одного и того же типа объекта игнорировали друг друга без столкновения. Согласно документации Apple,
«Маска столкновения этого тела сравнивается с маской категории другого тела путем выполнения логической операции И. Если результатом является ненулевое значение, то на это тело влияет коллизия.»
Итак, я установил
ball.physics.categoryBitMask = 0x00000000;
ball.physics.collisionBitMask = 0x00000000;
Это приведет к нулевому результату логики и операции, но по какой-то причине они все еще сталкиваются друг с другом.
Как вы заставляете их проходить друг через друга?
Ответ №1:
Вы настраиваете шар на столкновение с самим собой. Установить:
static const uint32_t ballCategory = 0x1 << 1;
Измените свои битовые маски:
ball.physics.categoryBitMask = ballCategory;
ball.physics.collisionBitMask = 0;
Ответ №2:
Не устанавливайте маску категории равной 0 .
Комментарии:
1. Возможно, что-то не так с объявлением маски категории ur. Попробуйте установить static const uint32_t ballCategory = 0x1 << 1; непосредственно перед @implementation UrClass: и затем установите categorybitmask в ballCategory