Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: skippy_winksОтветов: 2

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

  • попробуйте перенести этот вопрос на gamedev.stackexchange.com Ali1S232 21.05.2011

xcodeiphonelayercocos2d-iphone

Ответы

Ответ 1 · рейтинг 4 · JulenissensHjelper

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

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

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

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

 [layer addChild:sprite];

 }

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

-(void)init {

[classInstance makeChild:self];

}

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

Ответ 2 · Ali1S232

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы