Я слышал, что в каждой игре Sprite Kit разрешено использовать только 32 разных билета категории. Есть ли способ обойти это? Мне нужно больше, чем тогда (примерно в 3-4 раза больше, так как игра - это открытый мир). Я настроил мои categorybitmask годов следующим образом:Какое максимальное количество разрешений категорииBitMask разрешено в комплекте Sprite?
static const uint64_t boundaryCategory = 0x1 << 0;
static const uint64_t mainCharCategory = 0x1 << 1;
...
static const uint64_t someOtherCategory = 0x1 << 31;
Я даже изменил uint32_t к uint64_t в надежде, что удвоит количество categorybitmask-х годов я мог бы использовать. К сожалению, нет. Если кто-нибудь знает какие-то методы, чтобы обойти этот предел, я буду очень благодарен.
Вы правы. Поскольку Sprite Kit использует битовую маску для 32-битного целого, представляющую 32 разных физических категории, вы не можете иметь больше (это верно даже в Xcode 7). Для максимального значения (UInt32 * 2), 4294967295, которое равно 11111111111111111111111111111111 в двоичном формате, вы делаете этот объект сталкивающимся со всеми остальными. –
Хорошо. Таким образом, нет абсолютно никакого способа взломать это ограничение? Может быть, есть какая-то другая техника, которую я могу использовать, которая даст ту же или аналогичную функциональность, что и «char1.physicsBody.categoryBitMask = char1Category?»? – Krekin