SpriteKit Swift - после обновления появляются большие спрайты solid белые - PullRequest
0 голосов
/ 04 августа 2020

Я схожу с ума, пытаясь понять это. У меня есть игра, над которой я не работал некоторое время. Я загрузил его в Xcode и обновил до swift 5 с 4, все прошло нормально. В игре используется несколько более крупной, но оптимизированной графики для фоновых элементов (PNG размером около 1000x1500 пикселей, но оптимизированы до размера файла 120-500 тысяч за счет ограниченных палитр). После обновления большинство этих фоновых элементов (которые являются SKSpriteNode) отображаются на экране как solid белых спрайтов. Некоторые из самых маленьких отображаются правильно. Я не могу найти никого, кто испытывал бы то же самое на stackExchange. Кто-нибудь еще испытал это? Любой знает решение.

Некоторые спрайты добавляются динамически, а некоторые помещаются в SKSceneNode с помощью редактора сцены.

Если я распечатываю неработающий SKSpriteNode, я получаю следующее:

имя: '(null)' текстура: ['BG_Building_06.png' (218 x 1939)] позиция: {0, 0} масштаб: {1,00, 1,00} размер: {218, 1939} привязка: {0,5, 0,5} вращение: 0,00

И если я распечатаю SKSpriteNode.texture, я получу:

Необязательно ('BG_Building_06.png' (218 x 1939))

Я также попытался вдвое уменьшить размер всех исходных png-файлов, и это решает большинство из них (но не является идеальным решением), поэтому определенно кажется, что это проблема с размерами спрайтов. Странно, что это работало без проблем в более старой версии, но теперь становится проблемой.

Я действительно схожу с ума, пытаясь решить эту проблему.

Спасибо.

1 Ответ

0 голосов
/ 11 августа 2020

SpriteKit все еще очень глючит. Если ваш код не изменился, но проблема не исчезла, скорее всего, это ошибка. Вы можете проверить это, отправив сообщение об ошибке:

https://developer.apple.com/bug-reporting/

Или обсудив на форумах разработчиков Apple. Самый быстрый способ узнать наверняка - подать заявку в службу технической поддержки: они либо помогут вам разобраться, либо сообщат, является ли это ошибкой.

...