我在SpriteKit中构建一个相当简单的游戏。这是我第一次使用SpriteKit,到目前为止它已经顺利进行了。我现在已经明白了,当玩家完成游戏时,我想呈现一个新的SKScene。我得到了一个我无法诊断的Bad Access崩溃。
我想我正确地呈现了这个场景:
UnlockRockets *scene = [[UnlockRockets alloc] initWithSize:self.scene.size];
[self.view presentScene:scene];
每次我在presentScene上得到以下错误:行 - 线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x10)
查看线程跟踪,看起来崩溃可能源于[SKNode isPaused]
任何建议都会很棒,我完全失去了这个建议。
答案 0 :(得分:0)
我认为UnlockRockets类中的initWithSize方法存在问题
答案 1 :(得分:0)
我遇到了与SKView目前场景相同的问题,即使场景是绝对新的,没有任何配置。所以我用这个来解决它。
myScene *newScene = [myScene sceneWithSize:size];
newScene.scaleMode = SKSceneScaleModeResizeFill;
SKView *currentskView = (SKView*) self.scene.view;
SKScene *currentScene = (SKScene*) self.scene;
[currentScene removeAllChildren];
[currentScene removeFromParent];
[currentskView presentScene:newScene];
我也注意到,如果声明对场景的强烈引用 - 它的工作方式与你一样,但在这种情况下,即使它不可见,场景也存在于内存中,xCode通知有内存警告。