标签:origin anim 间隔 时间 设置 addchild bsp 恢复 需要
1 //创建一个跑酷的精灵? 2 auto sprite = Sprite::create("1.png");? 3 //设置精灵的坐标? 4 sprite->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));? 5 //添加到当前层? 6 this->addChild(sprite);? 7 //创建序列帧动画? 8 auto animation = Animation::create();? 9 //设置动画名字数组的长度? 10 char nameSize[20] = {0};? 11 //动画的循环 12张图片? 12 for (int i =1; i<13; i++)? 13 {? 14 //循环遍历? 15 sprintf(nameSize, "%d.png",i);? 16 //添加到序列帧动画? 17 animation->addSpriteFrameWithFile(nameSize);? 18 }? 19 //设置动画帧的时间间隔? 20 animation->setDelayPerUnit(0.02f);? 21 //设置播放循环 一直播放 为-1? 22 animation->setLoops(-1);? 23 //设置动画结束后恢复到第一帧? 24 animation->setRestoreOriginalFrame(true);? 25 //创建动画动作? 26 auto animate = Animate::create(animation);? 27 //播放动画? 28 sprite->runAction(animate);
1 //帧动画缓存? 2 auto frameCache = SpriteFrameCache::getInstance();? 3 frameCache02->addSpriteFramesWithFile("1.plist");? 4 //创建一个显示动画的精灵? 5 auto sprite = Sprite::createWithSpriteFrameName("1.png");? 6 //设置动画的坐标? 7 sprite->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));? 8 //添加到当前层? 9 this->addChild(sprite);? 10 //?创建一个容器 11 Vector<SpriteFrame*> vec;? 12 //设置动画名字数组的长度? 13 char name[20] = {0};? 14 for (int i = 1; i<13; i++) {? 15 //遍历? 16 sprintf(name, "%d.png",i);? 17 vec.pushBack(frameCache->getSpriteFrameByName(name));? 18 }? 19 //auto animation = Animation::createWithSpriteFrames(vec,0.05f);? 20 //也是可以这么写的。那setDelayPerUnit 这个需要注释掉? 21 auto animation = Animation::createWithSpriteFrames(vec);? 22 //设置动画帧的时间间隔? 23 animation->setDelayPerUnit(0.05f);? 24 //设置播放循环 一直播放 为-1? 25 animation->setLoops(-1);? 26 //设置动画结束后恢复到第一帧? 27 animation->setRestoreOriginalFrame(true);? 28 //创建动画动作? 29 auto animate = Animate::create(animation);? 30 //播放动画动作? 31 sprite->runAction(animate);
cocos2dx 3.x(实现帧动画(人物动画,跑马灯效果)的几种方法)
标签:origin anim 间隔 时间 设置 addchild bsp 恢复 需要
原文地址:http://www.cnblogs.com/luorende/p/5998893.html