关于此函数->;cocos2d-x中的addChild()
我是cocos2dx的新手,我刚刚开始写一些小游戏。我定义了一个名为Block的类,它继承自CCNode,它包含一个名为m_Block的CCSprite类。我通过函数addObjet()将Block对象保存在CCArray m_runningBlock中 但是,当我试图从数组中取出CCSprite m_块,并通过函数this->addChilid()将m_块添加到CCLayer时,出现了问题,我无法找出问题所在。有人能帮我吗关于此函数->;cocos2d-x中的addChild(),cocos2d-x,Cocos2d X,我是cocos2dx的新手,我刚刚开始写一些小游戏。我定义了一个名为Block的类,它继承自CCNode,它包含一个名为m_Block的CCSprite类。我通过函数addObjet()将Block对象保存在CCArray m_runningBlock中 但是,当我试图从数组中取出CCSprite m_块,并通过函数this->addChilid()将m_块添加到CCLayer时,出现了问题,我无法找出问题所在。有人能帮我吗 class Block :public CCNode {
class Block :public CCNode
{
public:
int m_x;
int m_y;
CCSprite* m_block;
public:
Block(void);
Block(const char *pszFileName);
~Block(void);
CCSprite* getSprite();
void bindSprite(CCSprite* sprite);
virtual bool init();
CREATE_FUNC(Block);
};
//=====================================
CCSprite* Block::getSprite(){
return this->m_block;
}
void Block::bindSprite(CCSprite* sprite){
this->m_block = sprite;
this->addChild(m_block);
}
bool Block::init(){
return true;
}
//=============================================
CCArray* BlockManager::BlockType(Kind kind){
Block* m_block1 = Block::create();
m_block1->bindSprite(CCSprite::create("Block1.png"));
Block* m_block2 = Block::create();
m_block2->bindSprite(CCSprite::create("Block1.png"));
Block* m_block3 = Block::create();
m_block3->bindSprite(CCSprite::create("Block1.png"));
Block* m_block4 = Block::create();
m_block4->bindSprite(CCSprite::create("Block1.png"));
CCArray* array = new CCArray;
switch(kind){
case A:
m_block1->m_x = 4;
m_block1->m_y = 14;
m_block2->m_x = 5;
m_block2->m_y = 14;
m_block3->m_x = 5;
m_block3->m_y = 13;
m_block4->m_x = 5;
m_block4->m_y = 12;
array->addObject(m_block1);
array->addObject(m_block2);
array->addObject(m_block3);
array->addObject(m_block4);
break;
}
m_block1->release();
m_block2->release();
m_block3->release();
m_block4->release();
return array;
}
//=================================================
bool BlockManager::init()
{
bool bRect=false;
do {
Kind kind = A;
m_runingblock = CCArray::createWithCapacity(5);
m_runingblock->retain();
m_runingblock = BlockType(A);
CCObject* obj=NULL;
Block* block= NULL;
CCSprite* sprite = NULL;
CCARRAY_FOREACH(m_runingblock,obj){
block = (Block*)obj;
sprite = block->getSprite();
sprite->setPosition(ccp(block->m_x*50,block->m_y*50));
this->addChild(sprite);
}
this->scheduleUpdate();
bRect=true;
} while (0);
return bRect;
}
我可以从CCArray中获取m_x和m_y,但是当我尝试使用函数addChild()时,会发生中断。如果您有输入错误,应该是这个->addChild(sprite);不是这个孩子(怨恨);谢谢你的回答。