cocos2dx 3.2中精灵帧动画的使用以及动作组合

   使用cocos2dx中的Sprite,我们可以很容易的加载并显示一张图片,现在我们有一组图片,连续播放图片可以产生一些动作效果,该怎么做呢?

   我们可以使用SpriteFrame这个类来实现我们想要的效果。  SpriteFrame可以加载一组图片,将该SpriteFrame作为Animation的参数我们可以创建一组动作,达到播放图片动画的效果。这两个类在此不作具体介绍,读者可自行查阅资料,下面是实例代码:

    首先是创建SpriteFrame:

     Vector<SpriteFrame *> aniframe;  //在3.2中,Animation支持使用Vector作为参数类型

      char str[20];
for (int i=0;i<12;i++)
{
sprintf(str,"3/%d.png",i);
SpriteFrame *frame = SpriteFrame::create(str,RectMake(0,0,128,64));
if (i==0)
{
aniSprite = Sprite::createWithSpriteFrame(frame);
aniSprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
}
aniframe.pushBack(frame);
}
Animation *animation = Animation::createWithSpriteFrames(aniframe,0.1f);
Animate *animate = Animate::create(animation);
aniSprite->runAction(RepeatForever::create((ActionInterval *)animate));//用RepeatForever创建循环动作

以上代码创建了一个可以循环的鱼的游动动作,但只是在原地游动,下面添加鱼向前移动的动作

      aniSprite->runAction(MoveTo::create(5,PointMake(visibleSize.width-40, visibleSize.height/2)));

这样,鱼就可以向前游动了,效果逼真。

    在cocos2dx中,动作分为两大类:延时和瞬时;每类动作下又有许多不同的动作,我们可以使用Spawn(不同动作同时进行)和Sequence(不同动作顺序执行)达到各种我们想要的动作组合效果,但这两种组合方式中都不能直接使用循环动作,只能在它们的回调函数中使用,具体原因请听下回分解^_^!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值