ios - 转换到新 SKScene 时粒子效果消失

标签 ios objective-c sprite-kit skscene skemitternode

我正在使用 Sprite Kit 开发一款游戏。我有一个粒子效果,当一个对象与另一个对象碰撞时运行;然而,当我添加到另一个 SKScene 的过渡时,这种粒子效果似乎消失了。是什么导致了这种消失?我该如何解决这个问题?

编辑:消失是指当场景仍在过渡且所有 Sprite 仍显示时,它不会出现在当前场景中。它有 2 秒的时间间隔,所以我应该看不到它吗?

以下是粒子效果和场景转换的代码:

- (void)player:(SKSpriteNode *)player didCollideWithEnemy:(SKSpriteNode *)enemy {
    Enemy *monster = (Enemy *)enemy;
    if(!monster.isMoving){
        SKEmitterNode *emitter =  [NSKeyedUnarchiver unarchiveObjectWithFile:[[NSBundle mainBundle] pathForResource:@"MyParticle" ofType:@"sks"]];
        emitter.position = player.position;
        [self addChild: emitter];
        isAlive = FALSE;
        NSLog(@"Hit");
        CrowdedData *crowdedData = [CrowdedData sharedManager];
        crowdedData.score = score;
        [player removeFromParent];


        SKTransition *reveal = [SKTransition fadeWithDuration:2];   
        GameOver *scene = [GameOver sceneWithSize:self.view.bounds.size];
        scene.scaleMode = SKSceneScaleModeAspectFill;
        [self.view presentScene:scene transition:reveal];
    }

}

最佳答案

SKTransition 有两个与此相关的属性:

[transition setPausesOutgoingScene:NO];
[transition setPausesIncomingScene:NO];

两者都默认为"is",导致传入场景中的传出暂停,从而暂停发射器。出于您的目的,将 pausesOutgoingScene 属性设置为 NO 应该足以解决此问题。文档中的更多信息:

https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKView/Reference/Reference.html

关于ios - 转换到新 SKScene 时粒子效果消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228638/

相关文章:

ios - URL WebView Swift Xcode 7

ios - 如何在表格 View 中创建不同的列?

ios - 使用自定义按钮重新排序 tableview 单元格

swift - 如何让生成的敌舰每 x 秒发射一次子弹?

ios - Iphone 4 不显示游戏背景

ios - 在影片剪辑中嵌入 StageText?

javascript - 始终登录我的 android 和 ios 移动应用程序

ios - 如何在应用程序中使用新的 M7 运动协处理器?

ios - UIScreen 的边界在 SpriteKit 中不准确

ios - 具有多列的 TableViewCell