这是组件类,然后里面重写了OnEnter方法,在OnEnter中执行initPath()初始化动画
class ComMove : public cocos2d::Component{
public:
static ComMove * create(std::vector path);
virtual void onEnter() override;
void startMove();
protected:
ComMove(std::vector path);//构造方法
private:
std::vector _path;
cocos2d::Point _startPos;
cocos2d::Action * _moveActions;
void initPath(std::vector path);
};
```
然后cpp文件中的代码,startMove供外部调用。
void ComMove::initPath(std::vector path){
if (path.size() == 0) {
return ;
}
Vector actionsArray;
_startPos = path.at(0);
for (unsigned int i = 1; isetPosition(_startPos);
CCLOG("startMove");
onwer->runAction(_moveActions);
}
```
最后是调用部分:
auto comMove = ComMove::create(_pathVec);
monster->addComponent(comMove);
addChild(monster,2);
comMove->startMove();
```
然后就执行就报错了,在控制台输出了一下,发现initPath()在OnEnter之后执行,但是
if (!_moveActions) {
CCLOG("Move actions are empty!");
return;
}
里面的语句却没有被执行,这是怎么回事??
求大神解答~