是否有任何原因导致SKTexture
似乎忽略了.scale
构建图像时通过textureWithImage:
?
我有一个可用的图像资源,“[电子邮件受保护] /cdn-cgi/l/email-protection"
当我尝试先创建 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
在从图像构造时确定其自身大小时忽略比例属性,而在从图像名称构造时正确尊重比例。
这是预期的行为吗?
(显然,在我的真实代码中,我创建了我想以编程方式在纹理中使用的 UIImage,而不是通过 imageNamed)
编辑:这是 SpriteKit 中的一个(已确认)错误,已在 iOS8 中修复