Я только что начал использовать Sprite Kit и столкнулся с проблемой загрузки текстурированных спрайтов.Размеры или разрешение текстуры Sprite Kit
Я создал новый проект с шаблоном Sprite Kit в Xcode и хотел добавить простой спрайт с файлом изображения в качестве текстуры. Вот код, который я использовал в методе инициализации сцены:
SKSpriteNode *myNode = [SKSpriteNode spriteNodeWithImageNamed:@"my_image_file"];
myNode.position = CGPointMake(100, 100);
[self addChild:myNode];
Я не добавить расширение имени изображения, так что мой файл называется «my_image_file.png», но я опустил .png на конец. Я также переместил создание сцены в метод viewWillLayoutSubviews, как это предлагается в ряде руководств.
Я запускал проект в симуляторе (используя сетчатку iPhone в качестве устройства), и, к моему удивлению, спрайт оказался вдвое большим, как я ожидал, и с довольно большими пикселями. Казалось, что я использую iPhone без сетчатки. Насколько я могу судить, приложение Apple Adventure использует те же соглашения об именах, что и спрайты.
Я переименовал свой файл «[email protected]», и все это работало нормально, спрайт появился, так как я ожидаю, что он будет выглядеть на экране сетчатки. Поскольку у меня есть довольно много файлов изображений, я предпочитаю не переименовывать их все, и все это отлично работает в приложении Apple Adventure без постфикса @ 2x.
Он также отлично работает, если я явно определить размер текстуры, используя этот метод на SKSpriteNode:
+ (instancetype)spriteNodeWithTexture:(SKTexture *)texture size:(CGSize)size
Я очистил проект и удалил приложение из имитатора между каждым запуском, поэтому я предполагаю, что это не проблема с застрявшими или отсутствующими файлами изображений.
Я также попытался найти в Интернете, чтобы посмотреть, как работают соглашения об именах файлов текстур спрайтов, но я не смог найти документацию по этой проблеме.
Может кто-нибудь, пожалуйста, кратко объясните, как это работает, или, по крайней мере, покажите мне решение, которое не предполагает переименование всех моих файлов изображений или определение размера явно для всех моих спрайтов?
Спасибо, UTR
Спасибо, он отлично работает! Я все еще не понимаю, как работает приложение Apple Adventure. Он использует только каталоги активов для значков приложений и изображений запуска. – utrutr
Использует текстурные атласы для карты и персонажей. – quaertym
Я использую также атлас текстуры, но это не помогает. Есть ли опция на атласе текстуры, которая позволяет Xcode знать, будут ли изображения внутри использоваться в качестве текстур разрешения сетчатки? – utrutr