在 SpriteKit 中呈现图像的最佳方式

best way to present images in SpriteKit

我已经使用 SpriteKit 一年了,对它非常满意。不管我做什么都是习惯性的,而且我不一定确定我为什么做某些事情。我的图像都按纹理图集排序,但似乎有 3 种不同的方式输出这些精灵。有人可以解释一下使用 objectiveC 在 SpriteKit 中呈现精灵的差异吗?有性能差异吗?其中一种方法是否缓存精灵?或者它甚至有什么不同吗?

SKSpriteNode *tap = [SKSpriteNode spriteNodeWithImageNamed:@"tap"];

对比

SKTexture *tapTexture = [SKTexture textureWithImageNamed:@"tap"];
SKSpriteNode *tap2 = [SKSpriteNode spriteNodeWithTexture:tapTexture];

对比

SKTexture *tapTexture2 = [[SKTextureAtlas atlasNamed:@"Sprites"] textureNamed:@"tap"];
SKSpriteNode *tap3 = [SKSpriteNode spriteNodeWithTexture:tapTexture2];

都一样。如果有任何性能差异,它们可能很小。不过,如果您已经有了纹理,则可以通过使用 withTexture 初始值设定项来避免 file/cache 查找成本。