Я делаю игру. Мне удалось создать более одного слоя на одной и той же сцене, но я хочу, чтобы было обнаружено столкновение. И самый простой способ сделать это — иметь ОДИН слой. Я не знаю, как добавить ребенка в слой из другого класса. ПОМОЩЬ!
Добавить дочерний слой из другого класса Cocos2d?
Ответы (2)
Вы можете передать слой, к которому хотите добавить дочерний элемент, в функцию. Так:
Это в вашем классе:
-(void)makeChild:(CCLayer*)layer {
CCSprite *sprite =..**** //Create sprite
[layer addChild:sprite];
}
Это в основном слое:
-(void)init {
[classInstance makeChild:self];
}
Надеюсь, это поможет..
если вы хотите добавить некоторый экземпляр CCSprite в качестве дочернего элемента двух разных слоев, это невозможно, поскольку cocos2d всегда проверяет, не прикреплен ли объект, который вы добавляете в качестве дочернего, к другому объекту. но если ваша проблема заключается в обнаружении столкновений между некоторыми спрайтами, вам не нужно, чтобы они были дочерними элементами одного и того же объекта, вы можете вычислить абсолютную позицию каждого из них (я думаю, [sprite boundingbox]
делает это), а затем проверить, сталкиваются ли эти два, вы можете используйте box2d или chipmunk для проверки столкновений