Я делаю игру. Мне удалось создать более одного слоя на одной и той же сцене, но я хочу, чтобы было обнаружено столкновение. И самый простой способ сделать это - иметь ОДИН слой. Я не знаю, как добавить ребенка в слой из другого класса. ПОМОЩЬ!
Вопрос
Добавить дочерний слой из другого класса Cocos2d?
- попробуйте перенести этот вопрос на gamedev.stackexchange.com Ali1S232 21.05.2011
Ответы
Ответ 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.
Похожие материалы
- Iphone - неожиданное поведение при прокрутке по диагонали UIScrollview
- Порядок байтов, почему символы помещаются в печать Int16 задом наперед?
- Как я могу увидеть декартову плоскость в конструкторе интерфейсов?
- Как заставить приложение OS X Cocoa загружать пользовательские фреймворки из папки, в которой оно находится?
- Как использовать службу wcf типа post в iphone?
- Тайм-аут запроса веб-службы iPhone