Как остановить изменение SKSpriteNode на zPosition на ощупь

У меня проблема с zPosition, нежелательно изменяющаяся при прикосновении к узлу.

Я не могу привести простой пример кода, потому что в настоящее время моя сцена и рендеринг довольно сложны. Все отображается правильно, когда сцена представлена, и по большей части, кроме того, как описано ниже, она работает.

Итак, проблема объяснена - у нас есть базовый узел изображения, правильно отрисованный ниже узла башни (игра защиты башни). Башня круглая, а базовое изображение квадратное, поэтому углы торчат. Если вам удастся дотронуться до углов, по каким-то причинам, не зависящим от меня, zPosition сменится над башней.

Нет особого кода касаний, чтобы изменить какие-либо позиции в игре.

Я знаю, что это выстрел в темноте, но любое понимание было бы здорово и высоко ценится.

1 ответ

Решение

Если ваш взгляд ignoreSiblingOrder свойство установлено, вы должны установить zPosition каждого узла, соответственно, чтобы убедиться, что они нарисованы в правильном порядке.

Из документации Apple...

Значением по умолчанию (свойства ignoreSiblingOrder в SKView) является NO, что означает, что когда несколько узлов совместно используют одну и ту же позицию z, эти узлы сортируются и отображаются в определенном порядке. Родители оказываются перед своими детьми, а братья и сестры - от старших до младших. Когда для этого свойства задано значение YES, положение узлов в дереве игнорируется при определении порядка рендеринга. Порядок рендеринга узлов в одной и той же позиции z является произвольным и может меняться каждый раз при рендеринге нового кадра [выделение добавлено].

Другие вопросы по тегам