我正在创建一个使用iOS雪碧套件+粒子发射器的游戏。它在我的模拟器上运行的非常好,但是当我在iphone 6上运行游戏时,它非常慢而且滞后,我几乎无法与它交互。
你知道为什么模拟器和我的手机有这么大的不同吗?真的很感谢你的任何建议!
发布于 2015-04-18 21:04:52
我也在经历同样的事情。奇怪的是,iPhone 5和iPad性能很好。通常是60英尺。
在iPhone 6上,它从0到2 fps开始,通常停留在那里.有时,在20-30秒后,它已经完全缓冲了一切,我得到了60英尺。通常情况下,它永远不会出现在那里。
所以这不仅仅是模拟器和实际硬件的区别。iPhone 6和6+有很大的不同(也是错误的)。
顺便说一句,我发现用代码创建SKEmitterNodes很有用,因为它可以更快地尝试不同的值。以下是一个有用的方法:
- (SKEmitterNode *)buildEmitterWithImageName:(NSString *)imagefile {
//instantiate explosion emitter
SKEmitterNode *explosion = [[SKEmitterNode alloc] init];
UIImage *image = [UIImage imageNamed:imagefile];
[explosion setParticleTexture:[SKTexture textureWithImage:image]];
[explosion setParticleColor:[UIColor whiteColor]];
[explosion setParticleBirthRate:2];
[explosion setNumParticlesToEmit:0];
[explosion setParticleLifetime:3];
[explosion setParticleLifetimeRange:1];
[explosion setParticlePositionRange:CGVectorMake(60, 40)];
[explosion setEmissionAngleRange:360];
[explosion setParticleSpeed:80];
[explosion setParticleSpeedRange:30];
[explosion setXAcceleration:0.05];
[explosion setYAcceleration:0.05];
[explosion setParticleAlpha:1.0];
[explosion setParticleAlphaRange:0];
[explosion setParticleAlphaSpeed:0];
[explosion setParticleScale:0.35];
[explosion setParticleScaleRange:0.2];
[explosion setParticleScaleSpeed:0];
[explosion setParticleRotation:0];
[explosion setParticleRotationRange:0];
[explosion setParticleRotationSpeed:0];
[explosion setParticleColorBlendFactor:0];
[explosion setParticleColorBlendFactorRange:0];
[explosion setParticleColorBlendFactorSpeed:0];
[explosion setParticleBlendMode:SKBlendModeAlpha];
return explosion;
}在上面的代码中,我使用的出生率为2,这对于iPhone 6来说仍然是个问题。
-新信息更新
在我的应用程序中,有多个视图控制器,因为大部分应用程序使用标准导航控制器。另外,其中一些视图控制器有自己的SKView和SKScene实例。
iPhone 5和iPad做这件事从来都不是问题,但它似乎是iPhone 6和6+的杀手。我做了一个实验,我用SKScene和SKEmitterNode将应用程序简化为一个VC,并试图将其动画化。突然,它工作在60英尺。
FYI,我有4个发射极节点与不同的艺术资产运行在这个场景,它是超级快,因为它应该是。
非常烦人的是,我不得不重新设计这个应用程序,就因为这个。
https://stackoverflow.com/questions/28135855
复制相似问题