使用SKSpriteNode缩放时的像素化圆圈

时间:2015-05-05 20:06:30

标签: ios swift sprite-kit

缩小图像时,圆周围会变得像素化。

嵌入的圆形图像的半径为100像素。 (圆圈是白色的,所以点击空白区域,你会得到图像。)使用SpriteKit按比例缩小会使边框变得非常模糊和像素化。如何在SpriteKit中放大/缩小并保留清晰的边框?目标是使用圆形基础图像,并使用这一个基本图像创建不同大小的圆形图像。

White circle

    // Create dot
    let dot = SKSpriteNode(imageNamed: "dot50")

    // Position dot
    dot.position = scenePoint

    // Size dot
    let scale = radius / MasterDotRadius
    println("Dot size and scale: \(radius) and \(scale)")
    dot.setScale(scale)

    dot.texture!.filteringMode = .Nearest

1 个答案:

答案 0 :(得分:3)

您似乎应该使用SKTextureFilteringLinear代替SKTextureFilteringNearest

  

SKTextureFilteringNearest:

     

使用纹理中最近的点绘制每个像素。这种模式   更快,但结果通常是像素化的。

     

SKTextureFilteringLinear:

     

通过使用多个纹素的线性过滤器绘制每个像素   质地。此模式可以产生更高质量的结果,但可能会更慢。

你可以使用SKShapeNode,它可以在缩放动画时表现更好,但是当使用SKSpriteNode和图像时,最终结果(当点缩放到某个值时)将几乎像素化。