Есть ли причина, по которой SKTexture
появляется, чтобы игнорировать .scale
изображения при построении через textureWithImage:
?
У меня есть один доступный ресурс изображения, "[email protected]"
Когда я сначала пытаюсь создать текстуру при создании UIImage:
UIImage* image = [UIImage imageNamed:@"retina_image"];
SKTexture* texture_image = [SKTexture textureWithImage:image];
NSLog(@"image size %@, scale %f", NSStringFromCGSize(image.size), image.scale);
NSLog(@"texture from image, size %@", NSStringFromCGSize(texture_image.size));
Получаю следующий результат:
image size {50, 50}, scale 2.000000
texture from image, size {100, 100}
Пока я ожидал получить
image size {50, 50}, scale 2.000000
texture from image, size {50, 50}
Поскольку размер изображения (в точках) равен 50x50
Это также то, что вы получаете, когда напрямую создаете текстуру с ресурсом:
SKTexture* texture_named = [SKTexture textureWithImageNamed:@"retina_image"];
NSLog(@"texture named, size %@", NSStringFromCGSize(texture_named.size));
дает следующий результат (как и ожидалось):
texture named, size {50, 50}
Это говорит о том, что SKTexture
игнорирует свойство scale при определении его собственного размера при построении формы изображения при правильном соблюдении масштаба при построении из изображения.
Это ожидаемое поведение?
(очевидно, в моем реальном коде я создаю UIImage, который я хочу использовать в текстуре программно, а не через imageNamed)
Изменить: это (подтвержденная) ошибка в SpriteKit, исправленная в iOS8