Cocos2d-x 2.0.1 学习tests示例(二)ActionsTest

article/2025/10/19 3:54:47
作者:无幻
博客: http://blog.csdn.net/akof1314
初学Cocos2d-x,如文章有错误之处,欢迎指出


       自上篇《 Cocos2d-x 2.0.1 学习tests示例(一)Manual Transformation》继续学习tests示例。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
void HelloWorld::runMyTest2()
{
     // 以PNG图片创建精灵
    CCSprite *pgrossini = CCSprite::create( "Images/grossini.png");
    CCSprite *ptamara = CCSprite::create( "Images/grossinis_sister1.png");
    CCSprite *pkathia = CCSprite::create( "Images/grossinis_sister2.png");

     // 增加到层上,指定Z轴顺序
    addChild(pgrossini,  1);
    addChild(ptamara,  2);
    addChild(pkathia,  3);

     // 获得视图大小
    CCSize s = CCDirector::sharedDirector()->getWinSize();

     // 设置坐标
    pgrossini->setPosition( CCPointMake(s.width/ 2, s.height/ 2));
    ptamara->setPosition( CCPointMake(s.width/ 4, s.height/ 2));
    pkathia->setPosition( CCPointMake( 3 * s.width/ 4, s.height/ 2));

     // 移动一个CCNode对象到指定的新坐标,第一个参数表示所移动的时间,单位秒
    CCActionInterval*  actionTo = CCMoveTo::create( 2, CCPointMake(s.width- 40, s.height- 40));

     // 按指定的增量坐标,增量移动一个CCNode对象,第一个参数表示所移动的时间
    CCActionInterval*  actionBy = CCMoveBy::create( 2, CCPointMake( 80, 80));

     // 返回一个与actionBy反向的动作
    CCActionInterval*  actionByBack = actionBy->reverse();

     // 执行动作
    ptamara->runAction( actionTo);

     // 执行一系列的动作,碰到NULL结束
    pgrossini->runAction( CCSequence::create(actionBy, actionByBack,  NULL));

     // 执行动作
    pkathia->runAction(CCMoveTo::create( 1, CCPointMake( 40, 40)));
}
编译运行,如下图所示:


类似的 CCActionInterval动作,还有
CCMoveTo 移动到
CCMoveBy 增量移动
CCScaleTo 缩放到
CCScaleBy 增量缩放
CCSkewTo 切变到
CCSkewBy 增量切变
CCRotateTo 旋转到
CCRotateBy 增量旋转
CCJumpTo 跳跃到
CCJumpBy 增量跳跃
CCBezierTo 贝兹移动到
CCBezierBy 增量贝兹移动到
CCBlink 闪烁
CCFadeIn 淡入
CCFadeOut 淡出
CCFadeTo 淡化到
CCTintTo 渐变到
CCTintBy 增量渐变
CCDelayTime 延时
CCReverseTime 时间逆向
CCAnimate 动画
CCGridAction 网格动画
CCSequence 序列执行
CCRepeat 重复执行
CCRepeatForever 永远重复执行
CCSpawn 同时执行
CCActionEase 补间动画


       下面实现下tests里的动画效果,拷贝资源文件夹Resources下的"Images/grossini_dance_01.png"~"Images/grossini_dance_14.png",共14张图像到MyTest资源文件夹Resources下,拷贝"animations/animations-2.plist"、"animations/grossini.plist"、"animations/grossini.png"、"animations/grossini_blue.plist"、"animations/grossini_blue.png"、"animations/grossini_family.plist"、"animations/grossini_family.png",到MyTest资源文件夹Resources下,自定义函数runMyTest3函数的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
void HelloWorld::runMyTest3()
{
     // 以PNG图片创建精灵
    CCSprite *pgrossini = CCSprite::create( "Images/grossini.png");
    CCSprite *ptamara = CCSprite::create( "Images/grossinis_sister1.png");
    CCSprite *pkathia = CCSprite::create( "Images/grossinis_sister2.png");

     // 增加到层上,指定Z轴顺序
    addChild(pgrossini,  1);
    addChild(ptamara,  2);
    addChild(pkathia,  3);

     // 获得视图大小
    CCSize s = CCDirector::sharedDirector()->getWinSize();

     // 设置坐标
    pgrossini->setPosition( CCPointMake(s.width/ 2, s.height/ 2));
    ptamara->setPosition( CCPointMake(s.width/ 4, s.height/ 2));
    pkathia->setPosition( CCPointMake( 3 * s.width/ 4, s.height/ 2));

     // 创建动画
    CCAnimation* animation = CCAnimation::create();
     forint i= 1;i< 15;i++)
    {
         char szName[ 100] = { 0};
        sprintf(szName,  "Images/grossini_dance_%02d.png", i);
         // 以图像文件名添加帧
        animation->addSpriteFrameWithFileName(szName);
    }
     // 延迟时间(秒)应持续2.8秒,共14帧
    animation->setDelayPerUnit( 2.8f /  14.0f);

     // 是否应当在动画完成时,恢复原来的帧
    animation->setRestoreOriginalFrame( true);

     // 以动画来创建一个动画动作
    CCAnimate* action = CCAnimate::create(animation);
    pgrossini->runAction(CCSequence::create(action, action->reverse(),  NULL));

     // 动画缓存
    CCAnimationCache *cache = CCAnimationCache::sharedAnimationCache();
     // 从plist属性列表文件添加动画
    cache->addAnimationsWithFile( "animations/animations-2.plist");
     // 按名称返回之前添加的动画
    CCAnimation *animation2 = cache->animationByName( "dance_1");

     // 以动画来创建一个动画动作
    CCAnimate* action2 = CCAnimate::create(animation2);
    ptamara->runAction(CCSequence::create(action2, action2->reverse(),  NULL));

     // 复制动画
    CCAnimation *animation3 = (CCAnimation *)animation2->copy()->autorelease();
     // 设置循环次数
    animation3->setLoops( 4);

     // 以动画来创建一个动画动作
    CCAnimate* action3 = CCAnimate::create(animation3);
    pkathia->runAction(action3);
}
编译运行,如下图所示:



http://chatgpt.dhexx.cn/article/ptXFKiY3.shtml

相关文章

改变CMFCRibbonBar高度

本文作者&#xff1a;无幻 测试环境&#xff1a;Windows XP 开发环境&#xff1a;Visual Studio 2010 要改变CMFCRibbonBar的高度&#xff0c;需要重载CalcFixedLayout函数&#xff0c;例如如下&#xff1a; 头文件&#xff1a; #pragma once// // CKofMFCRibbonQuickAccessTo…

Cocos2d-x 2.0.1 学习tests示例(一)Manual Transformation

作者&#xff1a;无幻 博客&#xff1a; http://blog.csdn.net/akof1314 初学Cocos2d-x&#xff0c;如文章有错误之处&#xff0c;欢迎指出 从上次《Cocos2d-x 2.0 从HelloWorld入手》&#xff0c;继续学习tests示例。 1.右键点击“Solution ‘cocos2d-win32.vc2008’"&…

Unity3d好东西应该被看见_分享一个Assetbundle分析工具

关于Assetbundle分析 很多年前获得过搜狐畅玩的代码 不确定是不是腾讯流出版本&#xff0c;反正经历了深圳畅玩&#xff0c;到北京畅玩。 整个中国地图&#xff0c;从南到北&#xff0c;成熟的Unity手游团队&#xff0c;手上几乎都是那一份ASSETBUNDLE处理代码 功能太多&am…

Visual C++ 2008 Feature Pack 示例截图

Visual C 2008 Feature Pack 示例截图 by 无幻 百度文库&#xff1a;http://wenku.baidu.com/view/f09e5575a417866fb84a8eb6.html 豆丁文档&#xff1a;http://www.docin.com/p-55873972.html CSDN下载&#xff1a;http://download.csdn.net/source/2380293 动态图片显示…

CRichEditCtrlEx支持静态表情聊天类的使用

本文作者&#xff1a;无幻 博客地址&#xff1a;http://blog.csdn.net/akof1314 平时我们在做IM聊天之类的软件的时候&#xff0c;一般都会使用Rich Edit控件来作为聊天编辑框和聊天记录框的控件&#xff0c;在之前的VC知识库看过《类似 MSN 信息发送框的制作(上)》、《类似 MS…

方舟服务器文件夹,方舟生存进化文件夹里哪个才是打开游戏 | 手游网游页游攻略大全...

发布时间&#xff1a;2016-04-07 有许多玩家反映在方舟生存进化当中自己在洞穴里只能挖到石头,挖不到水晶,这是怎么回事呢?接下来小编就为大家带来方舟生存进化在洞穴里怎么才能采集到水晶的详细攻略. 答:用铁镐挖才能采集到水晶,用石镐就只能采到石头,希望能帮到 ... 标签&am…

【VC学习】VC2010 Windows Media Player控件的使用技巧

声明&#xff1a;以下博客基于无幻 VC2008 Windows Media Player控件的使用技巧&#xff0c;自行学习整理 附上原地址&#xff1a;http://blog.csdn.net/akof1314/article/details/4900040 本是跟着老师选修课学习&#xff0c;编程都是基于MFC&#xff0c;手动在toolbox里面修…

真Unity3d_分享一个编辑器扩展模型预览视图Mesh Preview Inspector窗口

预览窗口 在 Unity 编辑器界面上可以看到除了 Game 视图、Scene 视图,其他的视图也会出现绘制三维物体的地方,比如检视器的预览窗口,当选中网格时,会对网格进行预览,如下所示: 预览窗口是UnityEditor的底层框架 UnityEditor框架图 可看我之前的博客: https://blog.c…

lookup

这里注意数组 1.{ sum((E3:E11)*(F3*F11) )} 代表数组运算ctrlentershift&#xff0c;因为(E3:E11)*(F3*F11)返回的是数组 2. sum(E3:E11)其中E3:E11也是数组但是直接enter就可以‘ 为什么&#xff1a;因为(E3:E11)是本来就存在的列&#xff0c;(E3:E11)*(F3*F11)是运算出来…

access Dlookup的值写入表

目的 写入供应商名称&#xff0c;自动弹出供应商代码&#xff0c;然后将该条记录增加到表中 方法 在供应商名称的属性表写&#xff0c;不是供应商代码的属性表 在事件过程中写入- Private Sub 供应商名称_AfterUpdate() Me.供应商代码.Value DLookup(“供应商代码”, “Q_…

access-vba之用户登录窗口

界面截图如下: 创建一个窗体设计,然后在设计中找到控件 因为科室更新,带来了用户的更新,所有用户的行来源不指定,但科室的行来源要指定 最后,我们通过VBA实现用户的行来源,这样可以保证在科室变化的情况下,用户实时显示每个科室的人员 Private Sub keshi_AfterUpdate(…

Excel函数公式大全—LOOKUP函数

EXCEL系列文章目录 Excel系列文章是本人亲身经历职场之后萌发的想法&#xff0c;为什么Excel覆盖如此之广&#xff0c;几乎每个公司、学校、家庭都在使用&#xff0c;但是它深藏的宝藏功能却很少被人使用&#xff0c;PQ、BI这些功能同样适用于数据分析&#xff1b;并且在一些需…

Dev的searchLookUpEdit

新添加的searchLookUpEdit的Text属性值为[EditValue is null]&#xff0c;并且无法直接通过修改Text属性来修改&#xff0c;而是可以通过修改它的Properties.NullText属性来修改&#xff0c;比如将该属性赋值为空&#xff0c;则为如下效果&#xff1a; searchLookUpEdit1.Prop…

LOOKUP函数10种经典用法

转载 https://mp.weixin.qq.com/s?__bizMzI0NzA5MTAyNg&mid2653352337&idx1&sn7494ca76ddf66483d8961f84fdbc958e&chksmf2670bacc51082baa65caa5f9af84e2f2121d635a16be1e9fd9557c6d8c68a5fe17bf90a4ce8&scene27 案例1:按照销售金额区间查询提成比例 此法…

LOOKUP函数

数值可升序&#xff1a; lookup&#xff08;查找值&#xff0c;查找区域&#xff0c;返回值&#xff09; lookup&#xff08;查找值&#xff0c;查找区域返回值B2&#xff09; B2的 第一列为查找区域&#xff0c;最后一列返回值 https://wenku.baidu.com/view/ddce993ae45c3b35…

ChatGPT 总结VLOOKUP,LOOKUP,HLOOKUP,XLOOKUP用法与区别

很多人一直都没明白Excel中VLOOKUP&#xff0c;LOOKUP&#xff0c;HLOOKUP&#xff0c;XLOOKUP各查找函数之间的区别到底是什么&#xff0c;也很容易记错。 今天我们就让ChatGPT人工智能来帮助我们总结出各函数的用法。 当涉及到在 Excel 中查找数据时&#xff0c;这些函数都可…

Excel中的HLOOKUP、VLOOKUP、XLOOKUP函数

昨天使用INDEX和MATCH两个EXCEL函数完成了表中数据的快速查找&#xff0c;想一想&#xff0c;EXCEL中还有另外的查找函数&#xff0c;比如HLOOKUP、VLOOKUP、LOOKUP、XLOOKUP函数&#xff0c;那使用它们能不能完成同样的操作呢&#xff1f;   可以的。   仍然是昨天的问题&…

【保姆级】lookup-method标签实践与分析

【Spring源码系列- IOC】 1 【Spring源码】0.安装Gradle环境 2 【Spring源码】1.下载与编译_pom relocation to an other version number is not f 3 【Spring源码】2.试个水先&#xff5e;Debug找到传说中的三级缓存(图解向&#xff0c;堆图预警) 4 【Spring源码】3. x…

实战! excel常用函数中lookup的用法

实战 ! VLOOKUP实操&#xff1a; 图一 图二 当我们拿到图一这样的表&#xff0c;而需要获得图二的数据时候&#xff0c;就可以这样做&#xff1a; 图三 在所需要的单元格输入公式&#xff0c;VLOOKUP([区域],表1,3,0)&am…

Xlookup、Vlookup请走开,万能的Wlookup函数来了!

前天&#xff0c;为大家介绍了关于Vlookup接班人Xlookup函数的介绍&#xff0c;一方面惊叹于Xlookup强大的查找功能&#xff0c;另一方面也担心自已只能远观而不能使用。毕竟付费office365的用户占极少数。点击进入查看>> 那怎么办&#xff1f;下面为大家编写了一个比Xl…