Objeto de jogo com composição e CCSpriteBatchNode

Atualmente estou desenvolvendo um jogo com cocos2d e box2d no iPhone.
Eu li muitos artigos sobre organização de código de jogo, estrutura de objetos de jogo, etc. Eu comecei a desenvolver meus objetos de jogo herdando de uma classe base em si, herdando do CCSprite. Eu tinha um CCSpriteBatchNode para desenhar todos os itens do jogo, com os quais o jogador pode interagir, em uma chamada de compra. Isso foi fácil porque minha classe Item indiretamente herda do CCSprite, então eu poderia facilmente adicionar meus itens ao CCSpriteBatchNode. E além disso eu poderia confiar no cocos2d para manter meus objetos.

Depois de ler os artigos, entendi a necessidade de refatorar meu código com um estilo mais orientado à composição em vez do estilo de herança. Então eu fui com uma classe base GameObject herdada do NSObject e tendo propriedades como um ou mais CCSprite, um b2Body etc.

O problema que estou enfrentando agora é que não posso mais adicionar diretamente meu GameObject ao CCSpriteBatchNode. Primeiro pensei que poderia facilmente corrigir o problema adicionando a propriedade sprite do GameObject ao CCSpriteBatchNode. Tudo bem, mas quem mantém o objeto que possui o CCSprite? Como posso acessar facilmente o objeto original do CCSprite (são userData / Object ok)?

Devo criar uma matriz mantendo meus itens? Gostaria de saber como você usaria um CCSpriteBatchNode com essa estrutura de objeto de jogo?

Já existe umfio sobre o que não é respondido e eu realmente gostaria de ouvir sobre o assunto. Não uma resposta direta, mas alguns elementos para ir além.

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion