Игровой объект с композицией и CCSpriteBatchNode

В настоящее время я разрабатываю игру с cocos2d и box2d для iPhone.
Я прочитал много статей, касающихся организации игрового кода, структуры игровых объектов и т. Д. Сначала я начал разрабатывать свои игровые объекты, унаследовав их от самого базового класса, унаследованного от CCSprite. У меня был CCSpriteBatchNode, чтобы рисовать все игровые элементы, с которыми игрок может взаимодействовать, за один вызов. Это было легко, потому что мой класс Item косвенно наследуется от CCSprite, поэтому я мог легко добавить свои элементы в CCSpriteBatchNode. И в довершение всего я мог положиться на cocos2d, чтобы сохранить свои объекты.

Прочитав статьи, я понял, что нужно реорганизовать мой код с более ориентированным на композицию стилем, а не на стиль наследования. Поэтому я выбрал базовый класс GameObject, унаследованный от NSObject, и обладающий такими свойствами, как один или несколько CCSprite, один b2Body и т. Д.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я больше не могу напрямую добавлять свой GameObject в CCSpriteBatchNode. Сначала я подумал, что могу легко решить эту проблему, добавив свойство sprite объекта GameObject в CCSpriteBatchNode. Это нормально, но кто удерживает объект, владеющий CCSprite? Как я могу легко получить доступ к исходному объекту из CCSprite (все ли в порядке userData / Object)?

Должен ли я создать массив, сохраняющий мои элементы? Я хотел бы знать, как бы вы использовали CCSpriteBatchNode с такой структурой игровых объектов?

Уже естьнить о том, что остается без ответа, и я действительно хотел бы услышать о предмете. Не прямой ответ, но некоторые элементы, чтобы пойти дальше.

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос