我是 Objective-C 的新手,所以一开始我可能使用了错误的方法来呈现场景,但是当我呈现新场景时,旧场景可以通过它看到。
- (void)buttonClicked:(UIButton*)button
{
NSLog(@"Button %ld clicked.", (long int)[button tag]);
WarScene *battle = [[WarScene alloc] initWithSize: CGSizeMake(1024,768)];
SKTransition *reveal = [SKTransition revealWithDirection:SKTransitionDirectionDown duration:1.0];
SKView * skView = (SKView *)self.view;
[skView presentScene:battle transition:reveal];
}
在移除当前场景的presentScene 方法之前,我首先必须写一些东西吗?
抱歉,如果这是一个非常基本的问题,我已经在谷歌上搜索并寻找了示例,但似乎没有一个我缺少任何额外的代码,这表明我可能一开始就错误地呈现了场景。
好消息!您不必编写任何内容来删除旧场景。它会自动删除,因为 Sprite Kit 会为您完成所有的释放工作。但是,如果您需要,您可以在中进行额外的“总结”didMoveFromView
method.
现在,过去的人们已经报道了你所经历的事情。我的建议是不要在 SKScene 之间进行转换,而是在呈现自己的 SKScene 的 SKView 之间进行转换。这样,您将确保通过将所有内容分开来自动释放所有内容。看到这个answer https://stackoverflow.com/questions/22007391/deallocate-skscene-after-transition-to-another-skscene-in-spritekit,我想这会对你有很大帮助。
祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)