【发布时间】:2018-06-26 06:45:50
【问题描述】:
每当我创建并定义两个变量为 SKTextureAtlas 类型时,它们就会相互重写。这是我最初创建的两个 SKTextureAtlas
class GameScene: SKScene {
var idle = true
var TextureAtlas = SKTextureAtlas()
var TextureAtlasIdle = SKTextureAtlas()
稍后在我的代码中,我为每个图集分配了一个图像文件夹。如果我注释掉第二个图集,我的动画就可以工作,但是当我如下所示定义这两个图集时,我的动画会重叠并播放来自 cat_walk 的帧,即使它被告知只播放 cat_idle
TextureAtlasIdle = SKTextureAtlas(named: "cat_idle")
for i in 1...TextureAtlasIdle.textureNames.count{
let Name = "\(i).png"
TextureArrayIdle.append(SKTexture (imageNamed: Name))
}
TextureAtlas = SKTextureAtlas(named: "cat_walk")
这就是我开始 cat_idle 动画的方式。我没有启动 cat_walk 动画
aN.run(SKAction.repeatForever(SKAction.animate(with:self.TextureArrayIdle, timePerFrame: 0.1)))
我试图找出为什么这行代码会导致我的两个不同动画重叠。
TextureAtlas = SKTextureAtlas(named: "cat_walk")
【问题讨论】:
-
您的代码运行良好。您可能对 Texture Atlas 文件夹及其内容做错了。你能提供你的地图集文件夹和内容的截图吗?
-
我认为您已将两个 atlas 文件夹的内容命名为 1.png, 2.png ... 等等。尝试将 cat_idle.atlas 文件夹内容更改为 idle1.png、idle2.png.. 等等。并确保重命名 cat_walk.atlas 文件夹的图像,如 walk1.png 等
-
这看起来完全是浪费资源,你为什么不通过 XCAssets 构建你的图集
-
谢谢大家,我只需要清楚地重命名所有图像。
标签: swift xcode sprite-kit