在SpriteKit中再次开始游戏的正确方法

时间:2014-08-11 08:21:41

标签: ios objective-c sprite-kit

我正在开发一款小游戏,我需要你的帮助。在我的游戏中,当用户失去所有生命时,看到游戏结束屏幕。在那里,有一个按钮来重放将用户再次带到主场景的游戏。问题是这样做每次都会增加内存消耗。我已经看到每次用户玩游戏时我可能会创建一个场景实例,所以我想知道在SpriteKit中执行此操作的正确方法。

非常感谢。

2 个答案:

答案 0 :(得分:0)

如果您使用的是游戏应用,那么您必须拥有模型,以及 Singleton 对象(您可以为游戏时刻和当前实例添加特殊方法),我在想。 ..如果你有,你可以添加boolValue进行检查。例如

if (gameModel.instance != nil) {
resumeGame = YES;
} else {
resumeGame = NO;
}

也许答案很粗鲁,但问题很难理解,没有例子......

答案 1 :(得分:0)

由于sprite kit中的许多情况,可能会发生内存消耗

1)你从内存中反复获取相同的纹理

2)没有从spritekit内存中正确删除你的场景实例

首先只获取一次图形,然后将它们保存在单个变量中   例如

静态SKTextureAtlas * gameAtlas = nil;

  static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
 //fetch gameAtlas only once once for class not for instance

});

3)将所有强引用设置为nil再次重新创建场景