Sprite Kit如何删除游戏场景

时间:2015-03-12 21:07:39

标签: ios sprite-kit skaction

我使用了探查器并在从包含游戏场景视图的视图控制器返回后检测到它(例如弹回到主菜单)。游戏场景仍在记忆中。

我认为它与我使用的一些SKAction相关联。如何追踪导致该问题的对象。

我使用了一些SKAction运行块,永远重复等等,我确信它会随之发生。

1 个答案:

答案 0 :(得分:2)

你不能delete一个SKScene。我建议为你现在的场景创建一个功能。这是和示例

(SWIFT)

 func deleteView(deleteEveryThing:Bool) {

    if deleteEveryThing {

         self.removeAllActions()
         self.removeAllChildren()

         //Scene presentation code here                
    }

    else {

         self.removeAllChildren()
         //Scene Presentation Code here
    }
 }

(目标-C)

 -(void)deletView:(BOOL)deleteEveryThing {

     if (deleteEveryThing) {

        [self removeAllNodes];
        [self removeAllActions];
    }

    else {

        [self removeAllNodes];
        [self removeAllActions];
    }
 }

所以我所做的是创建一个名为deleteView的函数,deleteView有一个布尔参数(True或false),如果它是trure,那么它将删除所有动作:{{1和所有孩子:self.removeAllActions() or [self removeAllActions];中的self.removeAllChildren() or [self removeAllChildren];。这有助于释放内存,一旦这两行代​​码运行,您就可以处理场景呈现代码。还有一个else部分执行相同的操作,但将SKScene留在SKActions中。

相关问题