СпрайтКит. Почему .strokeTexture не работает для SKShapeNode?

Я не могу понять, почему опция «strokeTexture» не работает на SKShapeNode. Или, как я могу сделать границу с текстурой? Заранее спасибо!

let shape = SKShapeNode(circleOfRadius: 100)
shape.position = CGPoint(x: 200, y: 400)
shape.fillColor = SKColor.white
shape.fillTexture = SKTexture(imageNamed: "test")
shape.lineWidth = 50
shape.strokeColor = SKColor.white
shape.strokeTexture = SKTexture(imageNamed: "test(5)")

Выход:

введите здесь описание изображения

Тестовое изображение: введите здесь описание изображения

Тестовое (5) изображение: введите здесь описание изображения


person Dmitriy Rodygin    schedule 28.09.2016    source источник
comment
Тебе нужно дать больше информации, чувак, никто не может читать твои мысли. Какая текстура, какая текстура штриха, какой ожидаемый результат   -  person Knight0fDragon    schedule 28.09.2016
comment
Текстуру можно увидеть на скриншоте, она заполняет круг. Я ожидаю хоть какой-то реакции (наполнение, повтор). Пробовал разные текстуры, цвета текстур и размеры. Результат всегда один - черный штрих.   -  person Dmitriy Rodygin    schedule 28.09.2016
comment
Что ж, судя по тому, что я вижу, он работает нормально, иначе ваш штрих был бы белым.   -  person Knight0fDragon    schedule 28.09.2016
comment
Я ожидал увидеть его текстуру (полосы) вместо черного. Даже если я использую другую текстуру (разноцветную) - будет черная обводка.   -  person Dmitriy Rodygin    schedule 28.09.2016
comment
Я даже не вижу здесь твоего размера мазка   -  person Knight0fDragon    schedule 28.09.2016
comment
Я отредактировал вопрос, отметив это.   -  person Dmitriy Rodygin    schedule 28.09.2016
comment
Если вы переименуете текстуру так, чтобы в имени не было скобок (), это сработает?   -  person Confused    schedule 30.09.2016
comment
Я пытался. Я наблюдаю точно такую ​​же проблему. Текстура всегда рисуется черным контуром.   -  person Confused    schedule 30.09.2016
comment
Еще одна интересная ошибка: при вращении SKShapeNode с заливкой текстурой текстура не вращается вместе с фигурой. Он остается в своей первоначальной ориентации.   -  person Confused    schedule 30.09.2016
comment
Да, у меня была такая же проблема с вращением, и мне помогло: с узлом камеры"> stackoverflow.com/questions/39576317/   -  person Dmitriy Rodygin    schedule 30.09.2016


Ответы (2)


В Симуляторе не работает!

Попробуйте на своем устройстве.

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

Заливка также не вращается вместе с объектом на устройстве, но обводка/контур и его текстура вращаются.

Это, как правило, указывает на то, что SKShapeNode без заполнения может иметь разумную производительность.

person Confused    schedule 30.09.2016
comment
Большое спасибо за ответ! - person Dmitriy Rodygin; 30.09.2016

Задайте ширину и высоту текстуры, используемой для рендеринга штриха, кратные 8 пикселям. В вашем случае Test(5) имеет размеры 100x100. Если вы измените эту текстуру на другую с размерами, например. 96x96 пикселей, обводка будет корректно отрисована и отображена. Не знаю, почему нет упоминания об этом факте в официальной документации.

person akostyurin    schedule 03.12.2017