Как остановить изменение SKSpriteNode на zPosition на ощупь
У меня проблема с zPosition, нежелательно изменяющаяся при прикосновении к узлу.
Я не могу привести простой пример кода, потому что в настоящее время моя сцена и рендеринг довольно сложны. Все отображается правильно, когда сцена представлена, и по большей части, кроме того, как описано ниже, она работает.
Итак, проблема объяснена - у нас есть базовый узел изображения, правильно отрисованный ниже узла башни (игра защиты башни). Башня круглая, а базовое изображение квадратное, поэтому углы торчат. Если вам удастся дотронуться до углов, по каким-то причинам, не зависящим от меня, zPosition сменится над башней.
Нет особого кода касаний, чтобы изменить какие-либо позиции в игре.
Я знаю, что это выстрел в темноте, но любое понимание было бы здорово и высоко ценится.
1 ответ
Если ваш взгляд ignoreSiblingOrder
свойство установлено, вы должны установить zPosition
каждого узла, соответственно, чтобы убедиться, что они нарисованы в правильном порядке.
Из документации Apple...
Значением по умолчанию (свойства ignoreSiblingOrder в SKView) является NO, что означает, что когда несколько узлов совместно используют одну и ту же позицию z, эти узлы сортируются и отображаются в определенном порядке. Родители оказываются перед своими детьми, а братья и сестры - от старших до младших. Когда для этого свойства задано значение YES, положение узлов в дереве игнорируется при определении порядка рендеринга. Порядок рендеринга узлов в одной и той же позиции z является произвольным и может меняться каждый раз при рендеринге нового кадра [выделение добавлено].