//CCAnimation是封装动画功能的类,它可以看作是由若干个_CCSpriteFrame对象组成的序列,精灵按照顺序切换它们,就形成了动画。CCAnimation也有内存池,
    //此处的animationName就是key,内存池通过它找到CCAnimation对象,再通过索引frameIndex找到动画序列中的某一帧,将该帧设为精灵的当前显示帧。
CCAnimation* animation = CCAnimation::create();
for( int i=;i<;i++)
{
char szName[] = {};
sprintf(szName, "Images/grossini_dance_%02d.png", i);
animation->addSpriteFrameWithFileName(szName);
}
// should last 2.8 seconds. And there are 14 frames.
animation->setDelayPerUnit(2.8f / 14.0f);
animation->setRestoreOriginalFrame(true); CCAnimate* action = CCAnimate::create(animation);
m_grossini->runAction(CCSequence::create(action, action->reverse(), NULL));
CCSize s = CCDirector::sharedDirector()->getWinSize();
CCPointArray *array = CCPointArray::create();
array->addControlPoint(ccp(, ));
array->addControlPoint(ccp(s.width/-, ));
array->addControlPoint(ccp(s.width/-, s.height-));
array->addControlPoint(ccp(, s.height-));
array->addControlPoint(ccp(, )); //
// sprite 1 (By)
//
// Spline with no tension (tension==0)
//
/*这个类是样条曲线动作,其创建函数CCCardinalSplineBy::create(float duration, cocos2d::CCPointArray *points, float tension);中duration是时间间隔,
points是控制点列表,tension是松紧程度。tension==1时,样条线是分段直线。 tension<1向外松弛弯曲,tension>1向内缩紧弯曲。By动作是以当前坐标为新坐标原点。*/
CCCardinalSplineBy *action = CCCardinalSplineBy::create(, array, );
CCActionInterval *reverse = action->reverse(); CCFiniteTimeAction *seq = CCSequence::create(action, reverse, NULL); m_tamara->setPosition(ccp(, ));
m_tamara->runAction(seq); //
// sprite 2 (By)
//
// Spline with high tension (tension==1)
// CCCardinalSplineBy *action2 = CCCardinalSplineBy::create(, array, );
CCActionInterval *reverse2 = action2->reverse(); CCFiniteTimeAction *seq2 = CCSequence::create(action2, reverse2, NULL); m_kathia->setPosition(ccp(s.width/, ));
m_kathia->runAction(seq2);
CCCatmullRomTo *action2 = CCCatmullRomTo::create(, array2);
CCCatmullRomBy *action3 = CCCatmullRomBy::create(, array2);
CCCatmullRomTo::create 参数1:执行时间 参数2:点数组
CCCatmullRomBy::create 参数1:执行时间 参数2:点数组
大家看到了,这个云线呢,在拐弯处移动速度稍快哦。
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(, s.height/);
bezier.controlPoint_2 = ccp(, -s.height/);
bezier.endPosition = ccp(,);
CCActionInterval* bezierForward = CCBezierBy::create(, bezier);
CCBezierBy::create 参数1:执行时间 参数2:贝塞尔Config 贝塞尔曲线的用途广泛,当然咯,我们的游戏中也不缺乏他的身影,这里重要的说下ccBezierConfig 。Cocos2D-X 中需要用到贝塞尔曲线的地方都有他的身影。其实,它也没有什么神秘的,只是一个拥有三个 CCpoint 的结构体,C2D-X 为了我们使用的方便提供了出来。
CCActionInterval*    action1 = CCBlink::create(, );
CCBlink::create 参数1:执行时间 参数2:闪烁次数 这个就很简单了,像我们游戏中被攻击的时候,要闪一下就用他,很方便,很简单。 当然,效果也是很好的。
CCActionInterval*    action1 = CCFadeIn::create(1.0f);
CCActionInterval* action2 = CCFadeOut::create(1.0f);
CCFadeIn::create 参数1:执行时间
CCFadeOut::create 参数1:执行时间
CCActionInterval*    action1 = CCTintTo::create(, , , );
CCActionInterval* action2 = CCTintBy::create(, -, -, -);
CCTintTo::create 参数1:时间 参数2:red值 参数3:green值 参数4:blue值
CCTintBy::create 参数1:时间 参数2:red值 参数3:green值 参数4:blue值 这里的By是在此基础之上变化。之前的都是在坐标上面变化,这个是在颜色上变化哦
Sequence of InstantActions:动作回调
CCFiniteTimeAction* action = CCSequence::create(
CCPlace::create(ccp(,)),
CCShow::create(),
CCMoveBy::create(, ccp(,)),
CCCallFunc::create(this, callfunc_selector(ActionSequence2::callback1)),
CCCallFuncN::create(this, callfuncN_selector(ActionSequence2::callback2)),
CCCallFuncND::create(this, callfuncND_selector(ActionSequence2::callback3), (void*)0xbebabeba),
NULL);
CCCallFunc::create 参数1:函数所在对象 参数2:selector包装函数
CCCallFuncN::create 参数1:函数所在对象 参数2:selector包装函数
CCCallFuncND::create 参数1:函数所在对象 参数2:selector包装函数
参数3:自定义参数 这里,我们第一次接触到了 Cocos2D-X 中的回调函数,在游戏中,我们想在一个动作结束时得到一个反馈,我们就要用到这些函数。

action(一)的更多相关文章

  1. redux-amrc:用更少的代码发起异步 action

    很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...

  2. 尝试asp.net mvc 基于controller action 方式权限控制方案可行性

    微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...

  3. ASP.NET Core 中文文档 第四章 MVC(4.1)Controllers, Actions 和 Action Results

    原文:Controllers, Actions, and Action Results 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:许登洋(Seay) Action 和 acti ...

  4. java中Action层、Service层和Dao层的功能区分

    Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...

  5. SpringMVC的Action在同一时间里只允许同一个浏览器的单次进入?

    最近用SpringMVC写了一个很简单的测试程序,代码如下: @Controller public class LongTimeTaskController { @RequestMapping(val ...

  6. No result defined for action com.lk.IndexAction and result success

    意图访问一个 /es/index.action 竟然出现: [SAE ] ERROR [05-11 13:54:32] [http-80-5] com.opensymphony.xwork2.util ...

  7. 实现MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器

    MVC开发中几种以AOP方式实现的Filters是非常好用的,默认情况下,我们通过App_Start中的FilterConfig来实现的过滤器注册是全局的,也就是整个应用程序都会使用的,针对单独的Fi ...

  8. ASP.NET MVC 5调用其他Action

    引用代码: @Html.Action("Index", "BaseData", new { d = "variety" }) 后台获取参数: ...

  9. C#基础知识六之委托(delegate、Action、Func、predicate)

    1. 什么是委托 官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法. 个人理解 委托通俗一点说就是把一件事情交给别人来帮助完 ...

  10. 在Application_Error事件中获取当前的Action和Control

    ASP.NET MVC程序处理异常时,方法有很多,网上也有列举了6种,下面是使用全局处理在Global.asax文件的Application_Error事件中实现.既然是ASP.NET MVC,我需要 ...

随机推荐

  1. JSONObject 转换 JSON复杂对象

    Bean定义: public class GetM100DataResponse { private String service;//接口代码 private String sessionId;// ...

  2. iOS: 转载CoreData数据库框架

    iphone-CoreData的使用详解 一.概念 1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型 在M ...

  3. go语言基础之defer和匿名函数结合使用

    1.匿名函数结合使用 示例1: package main //必须 import "fmt" func main() { a := 10 b := 20 defer func() ...

  4. tornado框架介绍

    一.安装tornado 手动安装: 下载 tornado-1.2.1.tar.gz tar xvzf tornado-1.2.1.tar.gz cd tornado-1.2.1 python setu ...

  5. 【版本】API NDK 系统 分辨率 统计

    Android版本号 版本  API/NDK版本号  代号                        发布时间 7.1.1          25            Nougat      7 ...

  6. [Transducer] Step by Step to build a simple transducer

    Transducers are composable algorithmic transformations. They are independent from the context of the ...

  7. const 与过载

    1.方法包括方法名,返回类型,形参表,修饰符. 2.对于一个方法,const可以出现的地方有返回类型,形参表,和方法后(const成员方法). 3.返回类型的常量性(是否为const)不同,不能构成过 ...

  8. 百度地图SDK for Android【检索服务】

    1搜索服务 百度地图SDK集成搜索服务包括:位置检索.周边检索.范围检索.公交检索.驾乘检索.步行检索,通过初始化MKSearch类,注册搜索结果的监听对象MKSearchListener,实现异步搜 ...

  9. angularjs中ng-repeat的使用

    第一个例子:使用ng-repeat最简单的例子 <html ng-app="myApp"> <head> <title>angularjs-de ...

  10. ubuntu 下安装 VIM 依赖vim-common错误

    ubuntu 下安装 VIM 依赖vim-common错误 sudo apt-get remove vim-common   先把上面的错误依赖删除 sudo apt-get install vim  ...