Ios 对场景应用效果有那么昂贵吗?

Ios 对场景应用效果有那么昂贵吗?,ios,iphone,ipad,sprite-kit,Ios,Iphone,Ipad,Sprite Kit,我正在用SpriteKit开发一个游戏。作为对用户获得奖金的回应,我想在游戏继续进行的同时闪烁屏幕3次。通过闪烁,我可以反转场景颜色,但我可以使用其他效果 我曾尝试在场景中使用CIFilter,但帧速率从60 fps下降到13 fps,使游戏无法播放 通过这样做,我尝试在整个场景中使用CIFilter CIFilter * (^invert)(void) = ^ { CIFilter *filter = [CIFilter filterWithName:@"CIColorInvert"];

我正在用SpriteKit开发一个游戏。作为对用户获得奖金的回应,我想在游戏继续进行的同时闪烁屏幕3次。通过闪烁,我可以反转场景颜色,但我可以使用其他效果

我曾尝试在场景中使用CIFilter,但帧速率从60 fps下降到13 fps,使游戏无法播放

通过这样做,我尝试在整个场景中使用CIFilter

CIFilter * (^invert)(void) = ^ {

  CIFilter *filter = [CIFilter filterWithName:@"CIColorInvert"];
  [filter setDefaults];
  return filter;

};
然后改变场景

self.filter = invert();
self.shouldEnableEffects = YES;
我是Cocos2D的长期用户。我在过去用Cocos2D开发的另一个应用程序上做过这种效果,与使用SpriteKit的这种可怜的帧速率相比,它对帧速率几乎没有影响

我尝试将效果仅应用于表示用户的字符,仅为100x100像素。帧速率从60帧下降到30帧。。。更好,但游戏也是不可玩的

有什么办法可以做到这一点,或者随着剧情的发展,在整个屏幕上产生一些令人印象深刻的短暂效果


谢谢

我有一个游戏,我在其中闪烁屏幕,下面的代码运行平稳,您可以根据需要试用并重复操作:

// Flash background if contact is detected
        [self runAction:[SKAction sequence:@[[SKAction repeatAction:[SKAction sequence:@[[SKAction runBlock:^{
            self.backgroundColor = [SKColor redColor];
        }], [SKAction waitForDuration:0.05], [SKAction runBlock:^{
            self.backgroundColor = [SKColor blueColor];
        }], [SKAction waitForDuration:0.05]]] count:4], [SKAction runBlock:^{
            //Do anything additional you wan to run during flash period
        }]]] withKey:@"flash"];

当用户收到奖金时,为什么不使用图像并运行动画序列呢。这样你就可以保持画面的完整性。你正在场景中运行一个动作吗?我喜欢苹果的文档:这是一个关于SKAction的文档:概述-SKAction对象是由场景中的节点执行的动作SKScene。。。场景中的节点,而不是场景旁边的节点。总之,它对我没有任何作用。所以在你的情况下。。制作一个背景节点。。并在节点上运行操作。。。我想它应该可以工作了,但问题是我已经有了覆盖背景色的节点。相反,我所做的是将该节点的alpha值分别更改为0.5和1.0,这样可以显示后面的bg颜色。这太棒了!你真是个天才!谢谢