Swift 更改所有SKTextures的SKTextureFilteringMode

Swift 更改所有SKTextures的SKTextureFilteringMode,swift,swift3,sprite-kit,sktexture,Swift,Swift3,Sprite Kit,Sktexture,是否有方法将filteringMode属性指定给SKTextureFilteringMode。对于所有SKTextures,最近的?而不是单独指定给每个纹理。下面的操作很好,但我希望我不必迭代纹理,只需设置过滤模式的默认值。这可能吗 func walk () -> SKAction { let walkTexture1 = SKTexture(imageNamed: "walk1.png") let walkTexture2 = SKTexture(imageNamed:

是否有方法将
filteringMode
属性指定给
SKTextureFilteringMode。对于所有
SKTextures
,最近的
?而不是单独指定给每个纹理。下面的操作很好,但我希望我不必迭代纹理,只需设置过滤模式的默认值。这可能吗

func walk () -> SKAction {

    let walkTexture1 = SKTexture(imageNamed: "walk1.png")
    let walkTexture2 = SKTexture(imageNamed: "walk2.png")
    let walkTexture3 = SKTexture(imageNamed: "walk3.png")
    let walkTexture4 = SKTexture(imageNamed: "walk4.png")
    let walkTexture5 = SKTexture(imageNamed: "walk5.png")


    let animationTextures: [SKTexture] = [walkTexture1, walkTexture2, walkTexture3, walkTexture4, walkTexture5]

    for texture in animationTextures {
        texture.filteringMode = SKTextureFilteringMode.nearest
    }

    let walkAnimation = SKAction.animate(with: animationTextures, timePerFrame: 0.3/5)

    return walkAnimation

在同一循环中创建纹理并设置属性

让纹理=(1…5).map{
let texture=SKTexture(图像名为:“walk\($0.png”)
texture.filteringMode=SKTextureFilteringMode.nearest
返回纹理
}

或者使用
forEach

textures.forEach{
$0.filteringMode=
}

在同一循环中创建纹理并设置属性

让纹理=(1…5).map{
let texture=SKTexture(图像名为:“walk\($0.png”)
texture.filteringMode=SKTextureFilteringMode.nearest
返回纹理
}

或者使用
forEach

textures.forEach{
$0.filteringMode=
}

您可以对SKTexture进行扩展,如下所示:

extension SKTexture {
    class func pixeled(imageNamed imageName: String) -> SKTexture {
        let texture = SKTexture(imageNamed: imageName)
        texture.filteringMode = .nearest
        return texture
    }
}
然后你就可以

let walkTexture1 = SKTexture.pixeled(imageNamed: "walk1.png")

等等。

您也许可以对SKTexture进行扩展,如下所示:

extension SKTexture {
    class func pixeled(imageNamed imageName: String) -> SKTexture {
        let texture = SKTexture(imageNamed: imageName)
        texture.filteringMode = .nearest
        return texture
    }
}
然后你就可以

let walkTexture1 = SKTexture.pixeled(imageNamed: "walk1.png")

等等。

请在你的答案中添加一些解释。请在你的答案中添加一些解释。