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.
}
以前的工作场景是否已经显示为部分工作的哑弹?
答案 0 :(得分:1)
从你所说的看起来按钮是触发动画而不是动作,仍然没有太多信息可以确定如何正确修复它,可能是按钮动作的创建工作。仔细检查创建SKActions的代码部分是否实际正在运行并处于活动状态。
答案 1 :(得分:1)
所以我四处寻找,发现罪魁祸首是在我用来创建按钮的课程中。它被称为 AGSpriteButton ,我强烈推荐它(你可以在github上找到它)。它具有默认提供的内置SELECTORS,ACTIONS和BLOCKS功能,非常容易使用。我不确定为什么,但SELECTORS停止正常运行。我刚刚切换到ACTIONS调用我的方法&amp;一切都很完美。