【问题标题】:Sprite Kit how to delete game sceneSprite Kit如何删除游戏场景
【发布时间】:2015-05-15 05:25:04
【问题描述】:

我使用分析器并在我从包含游戏场景视图的视图控制器返回后检测到这一点(例如,弹回主菜单)。游戏场景还在记忆中。

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

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

【问题讨论】:

标签: ios sprite-kit skaction


【解决方案1】:

你不能delete 和SKScene。我建议您在呈现场景时创建一个函数。这是和示例

(斯威夫特)

 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 有一个布尔参数(真或假),如果为真,那么它将删除所有操作:self.removeAllActions() or [self removeAllActions]; 和所有子项: self.removeAllChildren() or [self removeAllChildren];在SKScene。这有助于释放内存,一旦这两行代​​码运行,您就可以处理场景演示代码。还有一个 else 部分做同样的事情,但将 SKActions 留在 SKScene 中。

【讨论】:

  • 似乎删除所有操作,然后删除所有孩子解决了我的问题
猜你喜欢
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
相关资源
最近更新 更多