2015-01-25 3 views
0

iOS Sprite Kit + 입자 이미 터를 사용하는 게임을 만들고 있습니다. 그것은 내 시뮬레이터에서 완벽하게 잘 실행되지만, 내 아이폰 6 게임을 실행하면 슈퍼 느리고 지루한 및 나는 거의 그것을 상호 작용할 수 있습니다.iphone 6에서 입자 방출기가 천천히 느림

왜 시뮬레이터가 내 전화기와 다른지, 그리고 그것을 고치는 방법에 대한 제안? 정말 어떤 조언을 주셔서 감사합니다!

+1

코드를 게시하십시오. 일반적으로 그것은 반대로, 시뮬레이터가 느리다. – LearnCocos2D

답변

0

동일한 현상이 발생합니다. 이상하게도 iPhone 5 및 iPad 성능이 뛰어납니다. 보통 60fps.

iPhone 6의 경우 0-2fps에서 시작하며 대개 여기에 있습니다. 때로는 20-30 초가 지나면 모든 것을 완전히 버퍼링하고 60fps를 얻습니다. 보통, 결코 거기에 가지 않습니다.

그래서 시뮬레이터와 실제 하드웨어의 차이 만은 아닙니다. 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의 출산율을 사용했는데 그것은 여전히 ​​6

가 --------- 업데이트 아이폰에 대한 문제였다 새로운 정보 ----------

많은 앱에서 표준 탐색 컨트롤러를 사용하기 때문에 내 앱에는보기 컨트롤러가 두 개 이상 있습니다. 또한 일부 뷰 컨트롤러에는 자체 SKView 및 SKScene 인스턴스가 있습니다.

iPhone 5 및 iPad에서 문제가되지 않았지만 iPhone 6 및 6+에서는 살인자로 보입니다. 나는 내가 애니메이션을 만들려고했던 SKScene과 SKEmitterNode가있는 단일 VC로 응용 프로그램을 축소 한 실험을 수행했습니다. 갑자기 60fps에서 작동합니다.

참고로 저는이 장면에서 다른 예술 자산을 실행하는 4 개의 이미 터 노드를 가지고 있으며 매우 빠른 것입니다.

나는 단지 이것 때문에 앱을 다시 설계해야한다는 매우 짜증나게합니다.