使用atlas文件和SpriteKit进行批量绘制的问题

时间:2017-06-11 02:18:24

标签: ios swift sprite-kit sprite nodes

所以我在平台游戏中遇到了延迟问题。所以我正在研究如何提高绩效。

我试图进行批量绘图,以便减少绘制调用。我有问题但是。所以有了一个全新的项目:

我有4个英雄精灵,所有图像都存储在.atlas文件夹中。所以atlas文件夹中的每个精灵都有一个1/2 / 3x图像。

我将其拖放到xcassets文件夹中。然后我去我的sks文件创建4个精灵并相应地改变纹理。

默认情况下,它们都具有相同的混合模式。我将默认规则设置为true以忽略兄弟顺序。所有精灵都在默认的z 0层上。我将它设置为显示抽奖计数。

我希望看到1次抽奖,因为所有图像都在同一个图册文件中,但我看到了4。

我有什么遗失的吗?

好奇我是如何让它正常工作的。谢谢你的帮助!!!

1 个答案:

答案 0 :(得分:1)

在iOS 9上有一个xcassets的错误,即使图像放在xcassets中,绘制调用也不会减少。显然,这是在以后的版本中修复的,但从那以后我从未对xcassets感到烦恼。相反,我将图像放在项目中的单独的.atlas文件夹中,这确实减少了绘制调用。

尝试放置具有相同纹理的4个精灵,然后查看绘制调用的内容。如果精灵使用相同的纹理,它不应该是4。我还建议添加8个精灵(4个不同纹理*每个2个精灵)并查看绘制调用是否增加到8个。

如果绘制调用没有增加,那么我会假设4个绘制调用是绘制4个不同精灵所需的(如果它们是非常复杂的精灵)。如果绘制调用确实增加,请尝试从xcassets中删除图像并将它们放入项目中的单独.atlas文件夹中,然后比较绘制调用。