action(一)
//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(一)的更多相关文章
- redux-amrc:用更少的代码发起异步 action
很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...
- 尝试asp.net mvc 基于controller action 方式权限控制方案可行性
微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...
- ASP.NET Core 中文文档 第四章 MVC(4.1)Controllers, Actions 和 Action Results
原文:Controllers, Actions, and Action Results 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:许登洋(Seay) Action 和 acti ...
- java中Action层、Service层和Dao层的功能区分
Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...
- SpringMVC的Action在同一时间里只允许同一个浏览器的单次进入?
最近用SpringMVC写了一个很简单的测试程序,代码如下: @Controller public class LongTimeTaskController { @RequestMapping(val ...
- 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 ...
- 实现MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器
MVC开发中几种以AOP方式实现的Filters是非常好用的,默认情况下,我们通过App_Start中的FilterConfig来实现的过滤器注册是全局的,也就是整个应用程序都会使用的,针对单独的Fi ...
- ASP.NET MVC 5调用其他Action
引用代码: @Html.Action("Index", "BaseData", new { d = "variety" }) 后台获取参数: ...
- C#基础知识六之委托(delegate、Action、Func、predicate)
1. 什么是委托 官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法. 个人理解 委托通俗一点说就是把一件事情交给别人来帮助完 ...
- 在Application_Error事件中获取当前的Action和Control
ASP.NET MVC程序处理异常时,方法有很多,网上也有列举了6种,下面是使用全局处理在Global.asax文件的Application_Error事件中实现.既然是ASP.NET MVC,我需要 ...
随机推荐
- 优化png图片的历程
一.使用yslow一个tool 找到一个叫做smush的工具,点击就可以进入工具的页面. 然后你就能够压缩,下载压缩后的图片. 可是终于我还是没有选择这个方案.由于压缩的图片大小还是太大了,我认为还 ...
- SPSS19.0实战之多元线性回归
线性回归数据来自于国泰安数据服务中心的经济研究数据库.网址:http://www.gtarsc.com/p/sq/.数据名称为:全国各地区能源消耗量与产量,该数据的年度标识为2006年,地区包括我国3 ...
- go语言基础之递归函数的调用流程
一.递归函数的调用流程 package main //必须 import "fmt" func test(a int) { if a == 1 { //函数终止调用的条件,非常重要 ...
- STM32F103 GU906B模块GPRS、短信收发、拨号等功能的实现
这个程序搞了我很久,尤其是对如何提高响应速度上,程序流程很简单,大概就是: 发送AT指令->等待模块响应->一旦响应了,立即返回,并处理掉. 这个程序不一定只能用在GU906上,程序框架在 ...
- osglightpoint例子 [转]
该例子演示了光点的效果,主要应用osgSim库中的LightPoint.LightPointNode. SequenceGroup.BlinkSequence,osgSim库属于仿真库,扩展库.应用o ...
- python with和上下文管理工具
对于系统资源如文件.数据库连接.socket 而言,应用程序打开这些资源并执行完业务逻辑之后,必须做的一件事就是要关闭(断开)该资源. 比如 Python 程序打开一个文件,往文件中写内容,写完之后, ...
- CSS_LESS 语法/函数详解
嵌套规则 01 #header { color: black; }#header .navigation { font-size: 12px; 02 }#header .logo { 03 w ...
- Window上python开发--4.Django的用户登录模块User
Android系统开发交流群:484966421 OSHome. 微信公众号:oshome2015 在搭建站点和web的应用程序时,用户的登录和管理是差点儿是每一个站点都必备的. 今天主要从一个实例了 ...
- ASP.NET操作Oracle知识记录(采用ODP.NET)
最近因为要把以前做的一个项目数据库从MSSQL2005转移到Oracle上,所以开始接触Oracle,通过本篇随笔简单记录一些ASP.NET结合Oralce的操作: 因为微软未来不再支持 System ...
- 移动端项目中 @2x 图 和 @3x 图 的使用
移动端开发过程中,因为手机的dpr(设备像素比不同),我们需要根据dpr来修改图标的大小: 1.通过mixin,动态修改图标的背景图片.通过@media (媒体查询),判断设备的dpr. @mixin ...