Почему я не могу использовать конструктор SKPhysicsBody?

Я использую spritekit с быстрым (ios8, xcode 6). Когда я использую конструктор физического тела self.physicsBody = SKPhysicsBody(texture: myTexture, size: myTexture.size()) , он каждый раз терпит неудачу со следующей ошибкой:

<Error>: CGBitmapContextCreate: unsupported parameter combination:
 8 integer bits/component; 32 bits/pixel; 
 3-component color space;
 kCGImageAlphaPremultipliedLast; 127 bytes/row.   

Однако, когда я переключаюсь обратно на конструктор физического тела, такой как «SKPhysicsBody (rectangleOfSize: ...)», он работает нормально... Однако я хочу использовать физическое тело на основе текстуры. Почему возникает эта ошибка и как ее исправить?


person acahreonn    schedule 26.01.2015    source источник
comment
вы пробовали использовать другую текстуру   -  person hamobi    schedule 26.01.2015
comment
В основном это говорит вам, что формат изображения текстуры не поддерживается. Попробуйте использовать другое изображение или сохраните изображение в стандартном формате, например PNG с 24-битными цветами (truecolor) и 8-битным альфа-каналом (RGBA). Также убедитесь, что изображение не слишком маленькое (размер меньше 8x8 может быть проблематичным) и не слишком большое (размер до 2048x2048 работает на всех устройствах).   -  person LearnCocos2D    schedule 26.01.2015
comment
Я пробовал использовать другое изображение, я получаю ту же ошибку. Возможно, это потому, что я использую Gimp для экспорта своих PNG, и это дает неправильный формат?   -  person acahreonn    schedule 27.01.2015
comment
Любое решение для этого?   -  person Siriss    schedule 01.03.2015
comment
Я смирился с использованием конструктора физического тела на основе круга. Кажется, в Apple в настоящее время прослушивается автоматический создатель пути.   -  person acahreonn    schedule 03.03.2015


Ответы (1)


Я решил эту проблему, упростив форму текстуры, которую использовал для создания физического тела. Я подозреваю, что существует проблема с созданием физического тела с использованием форм с определенными характеристиками (на определение которых я не тратил время). Несмотря на это, в SpriteKit определенно есть ошибка, или, по крайней мере, сообщение об ошибке, которое возвращается, не передает соответствующую информацию о том, почему возникает ошибка. Кстати, изменение битов на канал не дало никакого эффекта.

Итак, я бы попытался упростить вашу форму, если вы можете. В моем случае это изображение:Sprite that generate errorгенерирует ошибку при использовании для инициализации PhysicsBody, тогда как это изображение: Спрайт, который не выдает ошибкунет.

person PixelCloudSt    schedule 17.06.2015