标签:oop 对象创建 esc orm 3.x create float string ram
Animation : 一个给精灵对象执行的帧动画对象。
Animate:是将动画包装成动作的类。
AnimationCache:管理动画的单例。
Animation帧动画对象包含动画帧对象,和帧间时长等等。
1 精灵帧(SpriteFrame)
每一个Animation对象,是由多个SpriteFrame组成。
2 帧间隔时间(delayPerUnit)
动画中的每两帧的间隔时间。
3 播放次数(loops)
但是Animation只是包含了创建真正“动作”的必要信息,要想成为一个动作,需要使用一个Animate来包装一个Animation对象。Animate动作只能由Sprite对象执行。
创建好的Animation,可以加到缓存中,方便以后使用。它用于缓存的动画。如果你想在缓存中保存你的动画,你应该使用这个类。
createWithSpriteFrames(Vector<SpriteFrame *> frameVec);
void addSpriteFrame (SpriteFrame *frame);
需要先将纹理打包文件.plist,通过SpriteFrameCache加载到缓存,然后获得精灵帧SpriteFrame。
例如:
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("test.plist");
SpriteFrame * frame = SpriteFrameCache::getInstance()->getSpriteFrameByName("test1.png");
Animation * aniMation = Animation::create();
aniMation->addSpriteFrame(frame);
void addSpriteFrameWithFile (const std::string &filename);
void setDelayPerUnit (float delayPerUnit);
void setLoops (unsigned int loops);//0表示动画不执行,1表示动画执行一次,-1表示动画循环执行。
Animation * clone ();
void setRestoreOriginalFrame (bool restoreOriginalFrame);
static Animate * create(Animation *animation);
void setAnimation(Animation *animation);
virtual Animate * reverse();
Animation * getAnimation();
void addAnimation(Animation *animation, const std::string &name);
void removeAnimation(const std::string &name);
Animation * getAnimation(const std::string &name);
//返回一个之前添加的动画。 如果没有找到它将返回空。 如果你要使用它,你应该retain返回的这个拷贝
SpriteFrame * frame = nullptr;
Vector<SpriteFrame *> frameVec;
for (int i = 1; i < frameNum; i++)
{
frame = SpriteFrame::create(StringUtils::format("run%d.png", i), Rect(0, 0, 130, 130));
frameVec.pushBack(frame);
}
Animation * ani = Animation::createWithSpriteFrames(frameVec);
ani->setLoops(-1);
ani->setDelayPerUnit(0.1f);
Animate * ac = Animate::create(ani);
标签:oop 对象创建 esc orm 3.x create float string ram
原文地址:https://www.cnblogs.com/aibox222/p/9019220.html