2010-07-08 3 views
1

Я совершенно не знаком с cocos2d и Objective C. Я только начал изучать пример HelloWorld, который пришел с пакетом cocos2d, и просто не мог понять, где в приложении вызывается функция -init() в HelloWorldScene.m.Вопрос о cocos2d - где init() вызывается в приложении?

Вот учебник, который я был следующим: http://www.bit-101.com/blog/?p=2123

Заранее спасибо!

ответ

1

Метод init() переопределяется в сцене. Он вызывается в базовом классе, когда создается экземпляр сцены. Переопределяя это, вы получаете возможность запускать свой собственный код.

5

jtalarico правильный. Я хотел бы немного рассказать о его ответе.

В общем, некоторая форма [init] вызывается условным образом всякий раз, когда объект получает экземпляр. Для многих объектов [init] требуется все, но некоторые объекты имеют более сложные формы, такие как [initWithSomething].

В Cocos2d функция init обычно вызывается методом [node], который часто используется для построения объекта в Cocos2d. Например, смотрите в CCNode.m, и вы увидите этот код:

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

Другие объекты имеют другие конструкторы, но это является главным примером.

Таким образом, если вы используете подкласс CCNode, вы можете переопределить метод [init] и создать свой собственный материал при создании объекта. Просто не забудьте вызвать [super init], чтобы CCNode мог выполнить свою собственную инициализацию.

+0

cc, спасибо за ваш ответ! Это все объясняет. – pwang

Смежные вопросы