2011-11-11 6 views
0

Je souhaite supprimer des objets toutes les 5 secondes. Mon problème est que, l'animal qui est le premier à apparaître sur l'écran tombe, mais les animaux ne tombent pas après leur chute à leurs positions d'origine.Sprite en chute toutes les 5 secondes

mon code pour laisser tomber l'animal est:

-(void)dropAnimal 
{ 
    [self performSelector:@selector(dropAnimal) withObject:nil afterDelay:5]; 
    prevojectIndex=objectIndex; 
    prevIndex=currentIndex; 

    float padding = sw*128/768; 
    float x = (float)(arc4random()%(int)(sw-padding*2))+padding; 

    if([SpritesARRAY count]>0) 
    { 
     objectIndex=arc4random()%[SpritesARRAY count]; 
     object=[SpritesARRAY objectAtIndex:objectIndex]; 
     object.falling = YES; 
     currentIndex=arc4random()%[animalsArray count]; 
     [object initWithSpriteFrameName:[animalsArray objectAtIndex:currentIndex]]; 
     object.position = ccp(x, sh*31/32-self.position.y); 

     objectsDictionary=[NSMutableDictionary dictionary]; 
     [objectsDictionary setObject:object forKey:[[NSNumber numberWithInt:objectIndex] stringValue]]; 
     [objectsDictionary retain]; 
     [SpritesARRAY removeObjectAtIndex:objectIndex]; 
     [self animateAnimal]; 

    }  
} 

-(void) animateAnimal 
{ 
    FallAnimal *CurObject=[objectsDictionary objectForKey:[[NSNumber numberWithInt:objectIndex] stringValue]]; 
    [CurObject runAction:[CCMoveTo actionWithDuration:2 position:CGPointMake(CurObject.position.x,90)]]; 
     [CurObject release]; 
    } 

Répondre

0

Vous ne devriez pas libérer CurObject ici:

-(void) animateAnimal 
{ 
    FallAnimal *CurObject=[objectsDictionary objectForKey:[[NSNumber numberWithInt:objectIndex] stringValue]]; 
    [CurObject runAction:[CCMoveTo actionWithDuration:2 position:CGPointMake(CurObject.position.x,90)]]; 
    [CurObject release]; // <-- makes no sense, you did not retain it! 
} 
+0

Si je ne suis pas libérer le CurObject .. le problème est le même. Savez-vous quel est le problème principal ?? – Neha

+0

Vérifiez votre code pour d'autres problèmes de gestion de la mémoire. Vous pourriez avoir toutes sortes de problèmes à cause de la mauvaise compréhension de la gestion de la mémoire. Exécutez "Product -> Analyze" dans Xcode pour laisser le compilateur vous aider à trouver de tels cas. – LearnCocos2D

Questions connexes