非视网膜SKSpriteNode纹理是像素化的

时间:2014-03-04 20:37:50

标签: ios objective-c sprite-kit

我正在创建一个圆形精灵节点,并在非视网膜版本中获得像素化。我没有在代码中的任何地方更改精灵节点的大小。我在Photoshop创建非视网膜版本,转到File>Save For Web>Changing大小为50%。每个球都是50x50的PNG。

以下是我如何实例化每个球。

Ball *ball = [Ball spriteNodeWithImageNamed:@"ball"];

Ball是SKSpriteNode子类。下面的图像是在模拟器中以100%的比例拍摄的。非视网膜图像在模拟器和物理设备中像素化。如何让这个资产看起来更干净?

Retina(“ball@2x.png”): retina

非视网膜(“ball.png”)nonretina

1 个答案:

答案 0 :(得分:1)

这可能不会完全回答原始问题,因为参考的图像是50x50,但对于高度与宽度不是1:1比例的图像,首先获得实际图像的尺寸有助于并设置纹理。

你可以在Swift中这样做:

if a.employee_name == b.employee_name:
    a.append(b['actual_duration'])
else:
    a.append('actual_duration': 0)

如果您想要将图像大小调整50%,将使用上述内容。如果您想要完整尺寸的图片,则只需使用let image = imageAsset let texture = SKTexture(image: image) let factor = 0.5 let size = CGSize(width: image.size.width * factor, height: image.size.height * factor) let node = SKSpriteNode(texture: texture, size: size) 作为image.size的尺寸参数,而无需SKSpriteNode变量。