、、、の3 つの異なるクラスTree
がFruit
ありBasket
ます。それらのそれぞれにはCCSprite
、私がアクセスする独自のメンバーがありますgetSprite( )
(各クラスには独自の がありますgetSprite( )
)。また、各クラスには、のテクスチャ、位置、およびその他の関連するものdraw( )
を設定するメソッドがあります。これらのクラスのインスタンスを作成するときは、常にこれらの各スプライトをメイン レイヤーに配置する必要があります。実際には何も問題はありませんが、各メソッドがメインレイヤーへのメソッドを処理するメソッドになるようにしたいです。CCSprite
CCSprite
addChild( )
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 から継承して、独自の子を持つことができるようにします。
他に考えられる解決策はありますか?現在のセットアップが汚れていて不安定だと感じています。前もって感謝します。