呈现前一个场景使得它没有反应

时间:2016-01-25 15:07:28

标签: ios objective-c sprite-kit

SpriteKit游戏提供MainMenuScene然后是LevelSelectionScene,最后是GamePlayScene。游戏结束后,在GamePlayScene中,用户将被转移回MainMenuScene,如下所示:

MainMenuScene *newScene = [MainMenuScene sceneWithSize:self.view.bounds.size];
[self.view presentScene:newScene transition:[SKTransition fadeWithDuration:0.5]];

它带我到现场,但之前工作的按钮不再起作用了。我按下它们,他们似乎做了他们的小动画,好像他们被按下了但是他们没有给我适当的场景他们应该。

每当一个场景即将离开时,我都会激活一段非常具体的代码,而我实际上并不知道它是否会影响整个难题:

-(void)willMoveFromView:(SKView *)view
{
    /* Remove anything stuck in memory. */
    [self removeAllActions];
    [self removeAllChildren];
    [self removeFromParent];
    [self.scene removeAllActions];
    [self.scene removeAllChildren];
    [self.scene removeFromParent];
    //[self.scene.view removeFromSuperview]; <--TOTALLY DESTROYS ALLS SCENES IN THE GAME. Don't use it.
}

以前的工作场景是否已经显示为部分工作的哑弹?

2 个答案:

答案 0 :(得分:1)

从你所说的看起来按钮是触发动画而不是动作,仍然没有太多信息可以确定如何正确修复它,可能是按钮动作的创建工作。仔细检查创建SKActions的代码部分是否实际正在运行并处于活动状态。

答案 1 :(得分:1)

所以我四处寻找,发现罪魁祸首是在我用来创建按钮的课程中。它被称为 AGSpriteButton ,我强烈推荐它(你可以在github上找到它)。它具有默认提供的内置SELECTORS,ACTIONS和BLOCKS功能,非常容易使用。我不确定为什么,但SELECTORS停止正常运行。我刚刚切换到ACTIONS调用我的方法&amp;一切都很完美。