播放一个数组中的动画

来源:互联网 发布:淮阴师范学院网络课程 编辑:程序博客网 时间:2024/05/16 19:32
#ifndef _h_AnimHelp_h#define _h_AnimHelp_h#include "cocos2d.h"#include "cocos-ext.h"#include <vector>using namespace std;using namespace cocos2d;using namespace cocos2d::extension;struct SeqData{    SeqData():seq_(NULL)    ,dt_(0.1f)    {    }    Sequence* seq_;    float     dt_;};class AnimHelp{public:        void callOut(Node* _obj, float dt, SEL_CallFuncND func)        {            if (!_obj)            {                log("[CallOut] obj got nil!");                return;            }            auto _dt = DelayTime::create(dt);            auto _sq = Sequence::create(_dt, func, NULL);            _obj->runAction(_sq);        }    void init(vector<SeqData*>   _seq)    {        seq_ = _seq;        index_ = 0;    }    Sequence* getAnim()    {        SeqData* data = seq_[index_];        if (!data)        {            return NULL;        }        return data->seq_;    }    float getTime()    {        SeqData* data = seq_[index_];        if (!data)        {            return NULL;        }        return data->dt_;    }    void setIndex(int _index)    {        index_ = _index;    }    int getIndex()    {        return index_;    }    int getLength()    {        return seq_.size();    }    static AnimHelp* getInstance()    {        if (NULL == instance_)        {            instance_ = new AnimHelp;        }        return instance_;    }private:    static AnimHelp* instance_;    vector<SeqData* > seq_;    int index_;};#define HEARTBEAT(classname, func) void\  ##classname::##func(float dt) \{ \    auto _index = AnimHelp::getInstance()->getIndex(); \    auto length = AnimHelp::getInstance()->getLength(); \\    if (length == _index) \    { \        unschedule(schedule_selector(##classname::##func));\        return; \    } \\    unschedule(schedule_selector(##classname::##func)); \    schedule(schedule_selector(##classname::##func), AnimHelp::getInstance()->getTime()); \    obj_->runAction(AnimHelp::getInstance()->getAnim()); \    _index++; \    AnimHelp::getInstance()->setIndex(_index); \}#endif
0 0
原创粉丝点击