【发布时间】:2022-06-11 04:16:39
【问题描述】:
我正在尝试将SKTextureFilteringMode.nearest 应用于我动画中的所有帧。
以前,当我使用非动画精灵时,以下方法有效:
super.init(texture: texture, color: .clear, size: playerSize)
self.texture?.filteringMode = SKTextureFilteringMode.nearest;
现在我添加了动画帧(见下面的完整代码),这不起作用——精灵是模糊的。我不知道如何将此过滤模式添加到所有帧。
class Player: SKSpriteNode {
private var playerAtlas: SKTextureAtlas {
return SKTextureAtlas(named: "Player")
}
private var playerRunTextures: [SKTexture] {
return [
playerAtlas.textureNamed("run1"),
playerAtlas.textureNamed("run2"),
playerAtlas.textureNamed("run3"),
playerAtlas.textureNamed("run4")
]
}
func startRunAnimation() {
let runAnimation = SKAction.animate(with: playerRunTextures, timePerFrame: 0.1)
self.run(SKAction.repeatForever(runAnimation), withKey: "playerRunAnimation")
}
init() {
let texture = SKTexture(imageNamed: "player")
let playerSize = CGSize(width: 30, height: 50)
super.init(texture: texture, color: .clear, size: playerSize)
self.texture?.filteringMode = SKTextureFilteringMode.nearest;
self.position = CGPoint(x: 100, y: 400)
self.startRunAnimation()
}
...
【问题讨论】:
标签: swift sprite-kit