Question

I am trying to take a particle effect in my Cocos2d project. Particle effect shows good. But I am confused when I put the particle showing function into a thread as follows, it only shows tiny dark squares instead of the right texture. thanx in advance.

// thread caller  
[self performSelectorInBackground:@selector(showParticleThrd:) withObject:nil];

// it works good when i call it directly

-(void) showParticleThrd{
    CCParticleSystem * system = [[ParticleEffectSelfMade alloc] initWithTotalParticles:1];
    [aLayer removeChildByTag:R_TAG cleanup:YES];
    system.position = ccp(self.position.x,self.position.y);
    [self.parent addChild:system z:R_ORDER tag:R_TAG];
    [system release];
}
Was it helpful?

Solution

You can not modify anything cocos2d related in a background thread. Cocos2d requires you to make changes to nodes in the main thread, where the OpenGL context was created.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top