2010-07-08 4 views

Répondre

1

La méthode init() est surchargée dans la scène. Il est appelé dans la classe de base lorsqu'une instance de la scène est créée. En l'écrasant, vous avez l'opportunité de déclencher votre propre code.

5

jtalarico est correct. J'aimerais développer un peu sa réponse.

En général, une forme de [init] est appelée par convention à chaque fois qu'un objet est instancié. Pour beaucoup d'objets, [init] est tout ce qui est nécessaire, mais certains objets ont des formes plus complexes, comme [initWithSomething].

Dans Cocos2d, la fonction init est généralement appelée par la méthode [node], souvent utilisée pour construire un objet dans Cocos2d. Par exemple, regardez dans CCNode.m, et vous verrez ce code:

+(id) node 
{ 
    return [[[self alloc] init] autorelease]; 
} 

D'autres objets ont d'autres constructeurs, mais c'est l'exemple principal. Donc, si vous sous-classez CCNode, vous pouvez remplacer la méthode [init] et faire vos propres choses quand un objet est créé. Assurez-vous juste d'appeler [super init] pour que CCNode puisse aussi faire sa propre initialisation.

+0

cc, merci pour votre réponse! Cela explique tout. – pwang

Questions connexes