2009-03-15 5 views
2

J'ai créé quelques sprites en utilisant un spriteclass et je les ai chargé dans un tableau. Dans mon application, je boucle sur le tableau en vérifiant les conditions particulières (position, etc.). Je veux créer une méthode d'explosion à laquelle je peux passer l'un de ces objets, puis utiliser le pointeur pour tirer la position de l'objet sur l'écran et y montrer une explosion. Je ne sais pas comment passer le pointeur/objet qui est dans mon tableau à la méthode à utiliser.Méthode en Objective-C qui pointe vers un objet

Voici essentiellement ce que j'avais à l'esprit:

for (int i=1; i<4; i++) { 

    EnemySprite *currentenemy = [enemies objectAtIndex:i-1]; 

    //Blow this guy up 
    [self explosion:currentenemy] 
} 


-(void)explosion someobject { 

    explosion.position = someobject.position 

    someobject.setHidden=YES; 

} 

Répondre

3

Vous écrirait comme ça pour un param

// definition 
-(void) explosion:(EnemySprite*) someObject 
{ 

} 

// usage 
[self explosion: object]; 

Pour deux params choses sont un peu plus impliqué. Considérer; Tout ce qui précède le: est utilisé pour le nom externe, tout ce qui suit est le nom interne à la fonction.

C'est pourquoi vous verrez souvent des fonctions Objective-C écrites avec des noms de fonction qui se terminent par le nom du premier type:

-(void) explodeSprite:(EnemySprite*) sprite radius:(float)radius; 

Les deux sprites et de rayon params semblent alors être « nommé » quand la fonction est écrite; Pourquoi ne pas faire de votre objet le récepteur de l'explosion?

[self explodeSprite:sprite radius:10.0f]; 
0

for (id currentenemy in enemies) 
{ 
    [currentenemy explode]; 
} 
Questions connexes