cocos2dx 动画是个非常奇妙的东西~~。 这里看到的是一个物体,在运动的过程中会不断地翻转的过程。

两个动画一起来~~



以下的代码中涉及到:CCAnimation(补间动画 )  CCAnimate(动画)  CCDelayTime(延迟动作)  CCFadeTo(设置透明态度) CCSequence(动作序列)  CCSpawn(让精灵的若干个动画同一时候运行)  CCRepeateForever(无限循环)  CCCallFuncN(瞬时动作中  node回调函数)  CCMoveTo (移动动作)


这里是用lua来写的,不是用c++写的。  lua来写这个真的是非常好。非常方便。
不多说,直接看代码。当中这些类的使用方法网上一搜一大把。


local winSize = CCDirector:shareDirector():getWinSize()

local layer = CCLayerColor:create(ccc4(0, 0, 0, 111), winSize.winSize, winSize.height)

--载入运动过程中的动画   使用文件载入  texturepacker

--这样的载入方式网上一大把,不知道原理的自行google

local cache = CCSpriteFrameCache:sharedSpriteFrameCache():addSpriteFramesWithFile("plist文件")

local array = CCArray:create()

for i = 1, n do   --这里n是帧的数量

local path = string.format("%d.png", i)

local name = CCSpriteFrameCache:sharedSpriteFrameCache():spriteFrameByName(path)

array:addObject(name)

end

local animation = CCAnimation:createWithSpriteFrames(array)

--也能够用table来设计几个动

--[[

local info =

{

{ pointx = 1, pointy = 2},

{ pointx = 1, pointy = 2}

}

local j = 0

for j = 1, #info do

local info1 = info[j]

info1.pointx

end

]]

--运动动画

local j = 0

for j = 1, 10 do   --几个在动

--刚刚设置的帧动画

animation:setDelayPerUnit((math.random(5, 10)) / 70)

animation:setRestoreOriginalFrame(true)

local animate = CCAnimate:create(animation)

animate:setTag(0)

--运动动画

local sprite = CCSprite:create("图片文件, 这里是跟plist文件名称一样的名字哟")

local offset = j * math.random(-1, 1)         --这里-1。 1 就是中间切割  向两側产生

sprite:setPosition(ccp(x + offset, y))   -- 这里的x, y 你自定义

sprite:setScale(1.2)

layer:addChile(sprite)

local arraymove = CCArray:create()

arraymove:addObject(CCDelayTime:create(j * 0.1))  --依据须要自己设置延时

local moveto = CCMoveTo:create(0.8, ccp(x + offset, y))   --跟上面的对照 x, y自己设置

local arrayFade = CCArray:create()

local delayFade = CCDelayTime:create(0.8)

local fade = CCFadeTo:create(0.05, 0)  --0.05秒内。 变为不透明

arrayFade:addObject(delayFade)

arrayFade:addObject(fade)

local actionFade = CCSequence:create(arrayFade)

local spawn = CCSpawn:createWithTwoActions(moveto, actionFade)  --让精灵的若干个动画同一时候运行

arraymove:addObject(spawn)

local action = CCSequence:create(arraymove)

sprite:runAction(CCRepeateForever:create(animate))

sprite:runAction(action)

end

--延迟销毁动作

local scene = CCDirector:sharedDirector():getRunningScene()

scene:addChile(layer, 100)

local arrayend = CCArray:create()

arrayend:addObject(CCDelayTime:create(2))   --延迟时间

arrayend:addObject(CCFadeTo:create(0.1, 0))

arrayend:addObject(CCCallFuncN:create(removeLayer))  --这里removeLayer是一个函数

local endAction = CCSequence:create(arrayend)

layer:runAction(endAction)

function removeLayer(n)

n = tolua.cast(n, "CCNode")

n:removeFromParentAndCleanup(true)

end

cocos2dx 运动+旋转动画 CCSequence CCAnimation CCAnimate CCMoveTo CCCallFuncN的更多相关文章

  1. cocos2dx基础篇(22) 基本动画CCAnimation/CCAnimate

    [小知识] CCSpriteFrame     :精灵帧.    它是相对动画而产生的,其实就是一张纹理图片. CCAnimationFrame  :动画帧.    由精灵帧与间隔帧数组成,是动画CC ...

  2. cocos2dx中创建动画的三种方法

    1.最最原始的方法,先创建动画帧,再创建动画打包(animation),再创建动画(animate) 第一步: 创建动画帧:CCSpriteFrame,依赖于原始的资源图片(xx.png,xx.jpg ...

  3. 【Cocos2d-X开发学习笔记】第21期:动画类(CCAnimate)的使用

    本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010 之前我们已经学习过一些方法让节点“动”起来,Co ...

  4. cocos2dX 之CCAnimation/CCAnimate

    我们今天来学习cocos2dX里面的动画的制作, 有人说, 不是前面CCAction已经学过了吗? 怎么还要学, CCAction是动作, 而我们今天要学的是动画哦, 是让一个东西动起来哦, 好了进入 ...

  5. cocos2d-x学习笔记------动画人物跑起来吧!

    学习总结: 1.sprintf用来格式化字符串 2.CCSpriteFrame:: frameWithTexture通过图片名创建的时候需要的参数Texture2D创建使用CCTextureCache ...

  6. 动作-CCActionInterval之CCAnimation&CCAnimate

    动画简单实例 v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#def ...

  7. css3制作旋转动画

    现在的css3真是强大,之前很多动画都是用jq来实现,但是css3制作的动画要比jq实现起来简单很多,今天呢,我自己也写了一个css旋转动画和大家分享.效果如下面的图片 思路:1.制作之前呢,我们先来 ...

  8. Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)

    本文主要介绍Android立体旋转动画,或者3D旋转,下图是我自己实现的一个界面 立体旋转分为以下三种: 1. 以X轴为轴心旋转 2. 以Y轴为轴心旋转 3. 以Z轴为轴心旋转--这种等价于andro ...

  9. iOS开发--QQ音乐练习,旋转动画的实现,音乐工具类的封装,定时器的使用技巧,SliderBar的事件处理

    一.旋转动画的实现 二.音乐工具类的封装 -- 返回所有歌曲,返回当前播放歌曲,设置当前播放歌曲,返回下一首歌曲,返回上一首歌曲方法的实现 头文件 .m文件 #import "ChaosMu ...

随机推荐

  1. Windows Embedded Compact 2013升级:VS2013也能编译

    IT之家(www.ithome.com):Windows Embedded Compact 2013升级:VS2013也能编译 今天,微软为Windows Embedded Compact 2013送 ...

  2. Oracle EBS Report 输出字符字段前部"0"被Excel自动去掉问题

    Oracle  EBS 提供多种报表的开发和输出形式,由于MS Excel在处理数据方面的优势明显,报表输出用Excel打开是很常见的开发项. 但是正是由于Excel的"过于智能而不智能&q ...

  3. BZOJ3232: 圈地游戏

    题解: 神题一道... 题解戳这里:http://hi.baidu.com/strongoier/item/0425f0e5814e010265db0095 分数规划可以看这里:http://blog ...

  4. UVA 753 A Plug for UNIX 电器插座(最大基数匹配,网络流)

    题意: 给n个插座,m个设备(肯定要插电了),k种转换头可无限次使用(注意是单向的),问有多少设备最终是不能够插上插座的? 分析: 看起来就是设备匹配插座,所以答案不超过m.这个题适合用网络流来解. ...

  5. jQuery Mobile 入门教程

    你每天都会对着它讲话,和它玩游戏,用它看新闻——没错,它就是你裤兜里的智能手机.android,黑莓还是iphone?为了让你清楚意识到究竟哪些才算是智能手机,我在下面总结了一个智能手机系统/设备的列 ...

  6. Java [leetcode 31]Next Permutation

    题目描述: Implement next permutation, which rearranges numbers into the lexicographically next greater p ...

  7. 在SharePoint 2010中创建网站的权限级别

    转:http://www.360sps.com/Item/CreatePermissionLevels.aspx 权限级别是SharePoint 2010新增加的功能,使我们对权限的设置又提高了一个层 ...

  8. NOIP2004 津津的储蓄计划

    一.津津的储蓄计划 (Save.pas/dpr/c/cpp). [问题描述] 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同. ...

  9. 【暑假】[深入动态规划]UVa 10618 Fun Game

    UVa 10618 Fun Game 题目: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36035 思路:   一圈人围坐 ...

  10. uva11732 strcmp() Anyone?

    题意:给出多个字符串,两两配对,求总配对次数. 思路:如果两个字符串一样,ans=strlen(字符串)*2+2,如果不同,ans=公共前缀长度*2+1:用左儿子右兄弟建字典树.插入一个字符计算一次. ...