Pergunta

Estou tendo um problema de design, isso pode ser devido ao fato de ainda não entender completamente o Cocos2D e o Box2D.

Quero criar objetos de jogo que tenham um CCSPRITE (Data de imagem) e um corpo B2 (física), eu estaria certo em criar um objeto encapsulado que contém os dois? Se eu fizesse isso, isso me permitiria fazer alterações no CCSPRITE

OU

Como já vi no código de exemplo, o corpo B2 possui uma variável de dados do usuário que o sprite está definido como. Então, com esse método, eu só precisaria ter um único ponteiro para os objetos de física que cuidariam do CCSPRITE.

Obrigado com antecedência.

Foi útil?

Solução

Minha maneira preferida de fazê -lo é encapsular ambos em um objeto de ator. Meu objeto de ator também é responsável por atualizar a posição/rotação do CCSPrite com base nos dados do corpo B2. Então eu uso esse objeto de ator como os dados do usuário no corpo B2. Ter o ator como os dados do usuário é útil quando itera sobre os corpos em ouvintes de contato.

Outras dicas

Uma solução simples é definir o membro do usuário do corpo para apontar para o Sprite e o membro do Data Data do Sprite para apontar para o corpo. Dessa forma, você pode acessá -los de uma maneira fácil e convenciente. Então você também não precisa encapsular os objetos sprite e corpo em um ator.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top