起初我的Swift 3.0 IOS游戏大约以55-60 FPS运行,这似乎没问题,但随着游戏规模的增加,FPS开始下降。目前我看到游戏开始后迅速降至约30.0 FPS。目前我的所有纹理都位于Assets.xcassets文件夹中,而不是一个接一个地放在任何特定的组中,我将它们称为动画,SKNodes等我需要它们。这可能是我的FPS下降太多的原因吗?我已经研究过使用纹理图谱,但有没有办法使用加载屏幕预加载所有这些纹理,这会加快我的游戏速度吗?
在任何给定时间,游戏都在大约110个节点上达到顶峰我不确定这是否被认为是手机要处理的很多节点?
通常这就是我为动画加载纹理的方法:
///WALK TEXTURES APPENDED TO TEXTURE ARRAYS///
for i in 1...12{
//Name of image to append to SKTexture
let name = "enemy\(i)";
let redname = "redenemyrun\(i)";
let blackname = "blackenemy\(i)";
if i <= 6 {
enemyRightTextures.append(SKTexture(imageNamed: name));
redEnemyRightTextures.append(SKTexture(imageNamed: redname));
blackEnemyRightTextures.append(SKTexture(imageNamed: blackname));
}
if i > 6{
enemyLeftTextures.append(SKTexture(imageNamed: name));
redEnemyLeftTextures.append(SKTexture(imageNamed: redname));
blackEnemyLeftTextures.append(SKTexture(imageNamed: blackname));
}
}
///WALKING ANIMATIONS///
animateEnemyWalkRight = SKAction.animate(with: enemyRightTextures, timePerFrame: 0.08, resize: true, restore: false);
animateEnemyWalkLeft = SKAction.animate(with: enemyLeftTextures, timePerFrame: 0.08, resize: true, restore: false);
Xcode也提供了一个有用的工具来调试此问题的原因。
如果有人可以在didMoveTo()函数中提供预加载的示例,我认为这会使这个线程对所有人都有帮助。 感谢。