zoukankan      html  css  js  c++  java
  • cocos2d-3.x 创建动画

    1.多文件帧序列动画

    TrademarkAnimation.h

    #ifndef __TRADEMARK_ANIMATION_H__
    #define __TRADEMARK_ANIMATION_H__
    #include "cocos2d.h"
    USING_NS_CC;
    
    class TrademarkAnimation : public cocos2d::CCLayer{
        private:
        Animate* createAnimate();
    public :
        ~TrademarkAnimation();
        virtual bool init();
        
        CREATE_FUNC(TrademarkAnimation);
    };
    #endif

    TrademarkAnimation.cpp

    #include "TrademarkAnimation.h"
    
    bool TrademarkAnimation::init(){
        if(!CCLayer::init())return false;
        Sprite* runSp=Sprite::create();
        runSp->setPosition(Point(200,200));
        this->addChild(runSp);
    
        runSp->runAction(createAnimate());
        return true;
    }
    
    Animate* TrademarkAnimation::createAnimate(){
        int totalFrames=319;
        SpriteFrame* frame=NULL;
        Vector<SpriteFrame*> frameVec;
    
        for(int i=1;i<=totalFrames;i++){
            //tdmark/tdmark0001.png....tdmark/tdmark0319.png
            frame=SpriteFrame::create(StringUtils::format("tdmark/tdmark%04d.png",i),Rect(0,0,354,270));
            frameVec.pushBack(frame);
        }
    
        Animation* animation=Animation::createWithSpriteFrames(frameVec);
        animation->setLoops(-1);
        animation->setDelayPerUnit(0.04f);//: 1/帧频
    
        Animate* action=Animate::create(animation);
        return action;
    }
    
    TrademarkAnimation::~TrademarkAnimation(){
    
    }

     2.plist文件创建动画

    #include "TrademarkAnimation.h"
    
    bool TrademarkAnimation::init(){
        if(!CCLayer::init())return false;
    
        Size size=Director::getInstance()->getVisibleSize();
        Sprite* runSp=Sprite::create();
        runSp->setPosition(size.width*0.5,size.height*0.5);
        this->addChild(runSp);
        runSp->runAction(createAnimate());
        return true;
    }
    
    Animate* TrademarkAnimation::createAnimate(){
        //如果flash出图,设置:
        //Algorithm: Basic/MaxRects
        //Data format: cocos2D v2
        //Trim: false
        //Stack frames: false
        SpriteFrameCache* frameCache=SpriteFrameCache::getInstance();
        frameCache->addSpriteFramesWithFile("trademark.plist","trademark.png"); //或 frameCache->addSpriteFramesWithFile("trademark.plist");
    
        int totalFrames=319;
        SpriteFrame* frame=NULL;
        Vector<SpriteFrame*> frameVec;
        for(int i=0;i<totalFrames;i++){
            //T1 instance 10000.......T1 instance 10318
            frame=frameCache->getSpriteFrameByName(StringUtils::format("T1 instance 1%04d",i));
            frameVec.pushBack(frame);
        }
    
        Animation* animation=Animation::createWithSpriteFrames(frameVec);
        animation->setLoops(-1);
        animation->setDelayPerUnit(0.04f);
    
        Animate* action=Animate::create(animation);
        return action;
    }
    
    TrademarkAnimation::~TrademarkAnimation(){
    
    }
  • 相关阅读:
    谈谈django里的Contex和RequestContext---向模板里添加全局变量
    Django如何重设Admin密码
    javascript的闭包
    javascript的this用法
    阮一峰---javascript系列
    Javascript继承机制总结 [转]
    chrome浏览器开发者工具使用教程[转]
    WAMP设置默认访问目录
    js 去掉空格.回车.换行
    网站服务器上载目录
  • 原文地址:https://www.cnblogs.com/kingBook/p/6104597.html
Copyright © 2011-2022 走看看