cocos2d学习笔记----动作、动画

524 阅读2分钟

帧动画:一帧一帧播放

//1.创建Animation:
Animation* ani = Animation::create()
//2.添加所有的精灵帧
for(int i = 0; i < 张数; i++)
{
    ani->addSpriteFrameWithFile(图片路径);
}
//3.设置播放帧动画的属性:
    //1.设置间隔时间:ani->setDelayPerUnit(间隔时间)
    //2.设置循环次数:ani->setLoops(循环次数);
    //3.设置是否回到原始帧:ani->setRestoreOriginalFrame(true/flase);
//4.创建Animate:
Animate* animate = Animate::create(ani);
//5.播放动作:
节点->runAction(animate)

回调动作:CallFunc

  • 写一个函数,无返回值且无参
    CallFunc* callFunc = CallFunc::Create(CC_CALLBACK_0(类名::函数名,调用的对象));
  • 序列动作:Sequence(动作按照前后顺序一一执行)
    • 必须以空结尾
    Sequence* seqAct = Sequence::create(动作1,动作2,...,nullptr)

动作

  • 所有的动作的基类:Action(类名::create)
  • 执行动作:节点->runAction(Action*);
  • Action(动作):
    • FiniteTimeAction:有限时间动作
    • ActionInstant:即时动作
    • ActionInterval:持续动作
    • 即时动作:指能够立刻完成的动作,这类动作都会在下一帧完成;

      • 例如设置位置/设置旋转/隐藏/显示/回调动作等
    • 持续动作:指不能够立刻完成的动作

      • 例如移动/旋转/动画/序列等
    • 属性变化动作:通过属性值的逐渐变化,来实现一个动画效果.(To代表最终指,By表示向量变量值)

      • 例如MoveTo/MoveBy/RotateTo/RotateBy/ScaleTo/ScaleBy/JumpTo/JumpBy
    • 视觉特效动作:

      • 例如FadeIn(淡入)/FadeOut(淡出)/TintTo(颜色变化)/TintBy/Blink(闪烁)/Animate;
    • 其他动作:DelayTime(延时)/Repeat(重复)/RepeatForever(一直重复)

    • 复合动作(必须以nullptr结尾):

      • 序列动作Sequence:动作按照顺序有序执行
      • 组合动作Spawn:动作同时执行
    • clone:克隆相同的动作;

    • reverse:将动作翻转执行

  • 停止动作:
    • 节点->stopAction(Action *);//停止某一个动作
    • 节点->stopActionByTag();//通过标签停止动作
    • 节点->stopAllActions();//通知所有动作