vector数组的删除,CallFuncN的使用
void CTaskMode::createSpr(int taskId,Coordinate pos,int offiset) { if(taskId < TASK_SPECIAL_SEGMENT) { Sprite * sprAction = Sprite::create("cell2.png",Rect((taskId%IMG_X_CNT)*CELL_WIDTH,(taskId/IMG_X_CNT)*CELL_HEIGHT,CELL_WIDTH,CELL_HEIGHT)); sprArr.push_back(sprAction); sprAction->setPosition(Point(pos.m_nX*60,pos.m_nY*60+30)); addChild(sprAction); sprAction->runAction(ScaleTo::create(0.7,0.2,0.2)); sprAction->runAction(Sequence::create(MoveTo::create(0.8,allLocation[offiset]), CallFuncN::create(this,callfuncN_selector(CTaskMode::removeAction)),nullptr)); } } void CTaskMode::removeAction(Node *node) { updateUI(1); int i; Sprite *spr = (Sprite *)node; for(i=0;i<sprArr.size();i++) { if(spr == sprArr[i]) { sprArr[i]->removeFromParent(); break; } } sprArr.erase(sprArr.begin()+i,sprArr.begin()+i+1); }
删第二个元素 vector<int> v; v.erase(v.begin()+1,v.begin()+2); 注意erase(m,n)删除第m到第n个元素,第n个不会被删除
CCCallFunc::create(this, callfunc_selector(testCallFunc::callback1)),
CCCallFuncN::create(this, callfuncN_selector(testCallFunc::callback2))
CCCallFuncND::create(this, callfuncND_selector(testCallFunc::callback3), (void*)0xbebabeba)
对应的方法
void testCallFunc::callback1(){} void testCallFunc::callback2(CCNode* pSender){} void testCallFunc::callback3(CCNode* pTarget, void* data){}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。