FSM * FSM::create(std::string state, std::function<void()> onEnter) { FSM* fsm = new FSM(state, onEnter); if ( fsm && fsm->init()) { fsm->autorelease(); return fsm; } else { CC_SAFE_DELETE(fsm); return nullptr; } }