2012-05-03 2 views
0

Предположим, у меня есть родительский узел с N дочерними узлами. Все они имеют запланированные обновления для каждого фрейма. Чей код update: вызывается первым, дочерние узлы или родительский? Есть ли установленный порядок?Кто сначала обновляется, родители или дети? (cocos2d)

ответ

1

Метод visit в CCNode имеет следующий код:

if(children_) { 
    ccArray *arrayData = children_->data; 
    NSUInteger i = 0; 

    // draw children zOrder < 0 
    for(; i < arrayData->num; i++) { 
     CCNode *child = arrayData->arr[i]; 
     if ([child zOrder] < 0) 
      [child visit]; 
     else 
      break; 
    } 

    // self draw 
    [self draw]; 

    // draw children zOrder >= 0 
    for(; i < arrayData->num; i++) { 
     CCNode *child = arrayData->arr[i]; 
     [child visit]; 
    } 

Итак, как вы можете видеть, первый которые посещают дети, чьи zOrder меньше нуля, то текущий узел (детский родитель) обращается , то остальные дети также посещаются (обратите внимание, что посещение узла в конечном итоге приведет его, согласно только что указанным критериям).

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