我正在创建一个圆形 Sprite 节点并在非视网膜版本中进行像素化。我没有在代码中的任何地方更改 Sprite 节点的大小。我正在 Photoshop
中创建非视网膜版本,方法是转到 File>Save For Web>Changing
大小为 50%。每个球都是 50x50 PNG。
下面是我如何实例化每个球。
Ball *ball = [Ball spriteNodeWithImageNamed:@"ball"];
Ball 是 SKSpriteNode
的子类。下面的图像是在模拟器中以 100% 比例拍摄的。非视网膜图像在模拟器和物理设备中被像素化。我怎样才能让这个 Assets 看起来更干净?
视网膜(“ball@2x.png”):
非视网膜(“ball.png”)
最佳答案
这可能无法准确回答原始问题,因为引用的图像是 50x50,但对于高宽比不是 1:1 的图像,首先获取实际图像的尺寸并设置纹理。
你可以在 Swift 中这样做:
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)
如果你想将图像大小调整 50%,将使用上面的方法。如果你想要全尺寸图像,你只需使用 image.size
作为 SKSpriteNode
的大小参数,而不需要 factor
变量.
关于ios - 非视网膜 SKSpriteNode 纹理像素化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22182498/