Добавить дочерний слой из другого класса Cocos2d?

Я делаю игру. Мне удалось создать более одного слоя на одной и той же сцене, но я хочу, чтобы было обнаружено столкновение. И самый простой способ сделать это — иметь ОДИН слой. Я не знаю, как добавить ребенка в слой из другого класса. ПОМОЩЬ!


person skippy_winks    schedule 21.05.2011    source источник
comment
попробуйте перенести этот вопрос на gamedev.stackexchange.com   -  person Ali1S232    schedule 21.05.2011


Ответы (2)


Вы можете передать слой, к которому хотите добавить дочерний элемент, в функцию. Так:

Это в вашем классе:

 -(void)makeChild:(CCLayer*)layer {

 CCSprite *sprite =..**** //Create sprite

 [layer addChild:sprite];

 }

Это в основном слое:

-(void)init {

[classInstance makeChild:self];

}

Надеюсь, это поможет..

person JulenissensHjelper    schedule 21.05.2011

если вы хотите добавить некоторый экземпляр CCSprite в качестве дочернего элемента двух разных слоев, это невозможно, поскольку cocos2d всегда проверяет, не прикреплен ли объект, который вы добавляете в качестве дочернего, к другому объекту. но если ваша проблема заключается в обнаружении столкновений между некоторыми спрайтами, вам не нужно, чтобы они были дочерними элементами одного и того же объекта, вы можете вычислить абсолютную позицию каждого из них (я думаю, [sprite boundingbox] делает это), а затем проверить, сталкиваются ли эти два, вы можете используйте box2d или chipmunk для проверки столкновений

person Ali1S232    schedule 21.05.2011