、、、の3 つの異なるクラスTreeがFruitありBasketます。それらのそれぞれにはCCSprite、私がアクセスする独自のメンバーがありますgetSprite( )(各クラスには独自の がありますgetSprite( ))。また、各クラスには、のテクスチャ、位置、およびその他の関連するものdraw( )を設定するメソッドがあります。これらのクラスのインスタンスを作成するときは、常にこれらの各スプライトをメイン レイヤーに配置する必要があります。実際には何も問題はありませんが、各メソッドがメインレイヤーへのメソッドを処理するメソッドになるようにしたいです。CCSpriteCCSpriteaddChild( )draw( )addChild( )
私のコードは次のようなものです:
// Tree.cpp
#include "Tree.h"
#include "cocos2d.h"
using namespace cocos2d;
Tree::Tree( ) {
draw( );
}
CCSprite * Tree:getSprite( ) {
return m_TreeSprite;
}
void Tree::draw( ) {
m_TreeSprite = CCSprite::create( "tree.png" );
m_TreeSprite -> setPosition ( 100, 100 );
}
/*
* The other classes have similar structure. Will take a long long post if I write them all.
*/
// MainLayer.cpp
void MainLayer::drawScreenObjects( ) {
m_Tree = Tree( );
this -> addChild( m_Tree.getSprite( ) );
m_Basket = Basket( );
this -> addChild( m_Basket.getSprite( ) );
}
draw( )メソッドが次のようになるようにします。
void Tree::draw( ) {
m_TreeSprite = CCSprite::create( "tree.png" );
m_TreeSprite -> setPosition( 100, 100 );
MainLayer -> addChild( m_TreeSprite );
}
私が考えている解決策は
MainLayerへの参照をすべてのクラスに渡し、メンバー変数にその参照を保持させます。- すべてのクラスを CCNode から継承して、独自の子を持つことができるようにします。
他に考えられる解決策はありますか?現在のセットアップが汚れていて不安定だと感じています。前もって感謝します。