我是 cocos2d-x 的新手,也许这是一个愚蠢的问题。
这是我的代码:在 Helloworld 的 init() 中:
CCSprite *pSprite1 = new CCSprite();
pSprite1 = CCSprite::create("Icon-72.png");
pSprite1->cocos2d::CCNode::setPosition(200, 200);
this->addChild(pSprite1);
CCSprite *pSprite2 = new CCSprite();
pSprite2 = CCSprite::create("Icon-72.png");
pSprite2->cocos2d::CCNode::setPosition(900, 500);
this->addChild(pSprite2);
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCMoveTo *move = CCMoveTo::create(1.0f, ccp(size.width / 2, size.height / 2));
CCCallFuncN *callFuncN = CCCallFuncN::create(pSprite2, callfuncN_selector(HelloWorld::testCCCallFunc));
pSprite1->runAction(CCSequence::create(move, callFuncN, NULL));
这是 testCCCallFunc:
void HelloWorld::testCCCallFunc(cocos2d::CCSprite *sender) {
sender->removeFromParentAndCleanup(true);}
我想要的是当 pSprite1 移动完成时,pSprite2 将被删除。但是在真正的 pSprite1 被移除并且 pSprite2 仍然在屏幕上。
我尝试更换
CCCallFuncN::create(pSprite1, callfuncN_selector(HelloWorld::testCCCallFunc));
和
CCCallFuncN::create(this, callfuncN_selector(HelloWorld::testCCCallFunc));
甚至这个
CCCallFuncN::create(NULL, callfuncN_selector(HelloWorld::testCCCallFunc));
上面的所有代码都运行良好,但我无法删除 pSprite2,我做了什么?,CCObject *pSelectorTarget 到底是做什么用的?
PS:对不起我的英语不好。