Sprite Kit如何删除游戏场景
Sprite Kit how to delete game scene
我使用探查器并检测到我从包含游戏场景视图的视图控制器返回后(例如弹出回主菜单)。游戏场景还在记忆中
我认为它与我使用的某些 SKAction 相关。如何跟踪导致该问题的对象。
我使用一些 SKAction 运行 块,永远重复等等,我确信它会发生一些事情。
你不能delete
一个SKScene
。我建议为您呈现场景时创建一个功能。这是一个例子
(Swift)
func deleteView(deleteEveryThing:Bool) {
if deleteEveryThing {
self.removeAllActions()
self.removeAllChildren()
//Scene presentation code here
}
else {
self.removeAllChildren()
//Scene Presentation Code here
}
}
(Objective - C)
-(void)deletView:(BOOL)deleteEveryThing {
if (deleteEveryThing) {
[self removeAllNodes];
[self removeAllActions];
}
else {
[self removeAllNodes];
[self removeAllActions];
}
}
所以我所做的是创建一个名为 deleteView
的函数,并且 deleteView
有一个布尔参数(真或假),如果它是真那么它将删除所有操作:self.removeAllActions() or [self removeAllActions];
和所有 children: self.removeAllChildren() or [self removeAllChildren];
在 SKScene
中。这有助于释放内存,一旦这两行代码 运行 就可以处理场景演示代码。还有一个 else 部分做同样的事情,但在 SKScene
.
中留下 SKActions
我使用探查器并检测到我从包含游戏场景视图的视图控制器返回后(例如弹出回主菜单)。游戏场景还在记忆中
我认为它与我使用的某些 SKAction 相关。如何跟踪导致该问题的对象。
我使用一些 SKAction 运行 块,永远重复等等,我确信它会发生一些事情。
你不能delete
一个SKScene
。我建议为您呈现场景时创建一个功能。这是一个例子
(Swift)
func deleteView(deleteEveryThing:Bool) {
if deleteEveryThing {
self.removeAllActions()
self.removeAllChildren()
//Scene presentation code here
}
else {
self.removeAllChildren()
//Scene Presentation Code here
}
}
(Objective - C)
-(void)deletView:(BOOL)deleteEveryThing {
if (deleteEveryThing) {
[self removeAllNodes];
[self removeAllActions];
}
else {
[self removeAllNodes];
[self removeAllActions];
}
}
所以我所做的是创建一个名为 deleteView
的函数,并且 deleteView
有一个布尔参数(真或假),如果它是真那么它将删除所有操作:self.removeAllActions() or [self removeAllActions];
和所有 children: self.removeAllChildren() or [self removeAllChildren];
在 SKScene
中。这有助于释放内存,一旦这两行代码 运行 就可以处理场景演示代码。还有一个 else 部分做同样的事情,但在 SKScene
.
SKActions