cocos2d-x 自带动画

2023-10-27

声明:博文内容为自己整理笔记所用,有不对的地方还请大家指正.

在cocos2dx 中的tests 项目里 已经带了 足够多的 动画事例 

ActionsTest

我只是看了其中一些 自我感觉比较常用的动画

ActionMove   移动

在cocos2d-x中移动分  to  和   by   两种

1     CCSize s = CCDirector::sharedDirector()->getWinSize();
2 
3     CCActionInterval*  actionTo = CCMoveTo::create(2, CCPointMake(s.width-40, s.height-40));    //2s的时间移动到某个位置相对于屏幕
4     CCActionInterval*  actionBy = CCMoveBy::create(2, CCPointMake(80,80));                        //2s的时间移动到80,80
5     CCActionInterval*  actionByBack = actionBy->reverse();                                        //让动作回复到actionBy之前的地方
6 
7     m_tamara->runAction( actionTo);                                                                //执行actionTo
8     m_grossini->runAction( CCSequence::create(actionBy, actionByBack, NULL));                    //顺序执行(actionBy,actionByBack),必须用NULL结尾
9     m_kathia->runAction(CCMoveTo::create(1, CCPointMake(40,40)));                                //1s的时间移动到40,40

 ActionScale  缩放

同样分为 to 和 by 记得有地方说这两种缩放  效果会不一样  但是我在win32 上实验   缩放大小是一样的,以后在到xcode 上实验

1     CCActionInterval*  actionTo = CCScaleTo::create(2.0f, 0.5f);                        //2个参数(时间,放大倍数)
2     CCActionInterval*  actionBy = CCScaleBy::create(2.0f, 1.0f, 10.0f);                 //三个参数(时间,x方向放大倍数,y方向放大倍数)
3     CCActionInterval*  actionBy2 = CCScaleBy::create(2.0f, 5.0f, 1.0f);                    
4 
5     m_grossini->runAction( actionTo);                                                
6     m_tamara->runAction( CCSequence::create(actionBy, actionBy->reverse(), NULL));        
7     m_kathia->runAction( CCSequence::create(actionBy2, actionBy2->reverse(), NULL));    

ActionSkew

还没研究 暂时留在这里

 1     CCActionInterval *actionTo = CCSkewTo::create(2, 37.2f, -37.2f);
 2     CCActionInterval *actionToBack = CCSkewTo::create(2, 0, 0);
 3     CCActionInterval *actionBy = CCSkewBy::create(2, 0.0f, -90.0f);
 4     CCActionInterval *actionBy2 = CCSkewBy::create(2, 45.0f, 45.0f);
 5     CCActionInterval *actionByBack = actionBy->reverse();
 6 
 7     m_tamara->runAction(CCSequence::create(actionTo, actionToBack, NULL));
 8     m_grossini->runAction(CCSequence::create(actionBy, actionByBack, NULL));
 9 
10     m_kathia->runAction(CCSequence::create(actionBy2, actionBy2->reverse(), NULL));

ActionRotate

 旋转

 1     CCActionInterval*  actionTo = CCRotateTo::create( 2, 45);                        //2s内顺时针旋转45度(每跨度180,旋转方向会相反)
 2     CCActionInterval*  actionTo2 = CCRotateTo::create( 2, -45);                        //2s内逆时针旋转45度(每跨度180,旋转方向会相反)
 3     CCActionInterval*  actionTo0 = CCRotateTo::create(2 , 0);
 4     m_tamara->runAction( CCSequence::create(actionTo, actionTo0, NULL));
 5 
 6     CCActionInterval*  actionBy = CCRotateBy::create(2 ,  360);                        //2s内自身旋转360度,正数为顺时针旋转,负数相反
 7     CCActionInterval*  actionByBack = actionBy->reverse();                            //回复
 8     m_grossini->runAction( CCSequence::create(actionBy, actionByBack, NULL));        
 9 
10     m_kathia->runAction( CCSequence::create(actionTo2, actionTo0->copy()->autorelease(), NULL));
11     //actionTo0->copy()->autorelease()  不清楚  作用 

ActionJump

跳动移动

1     CCActionInterval*  actionTo = CCJumpTo::create(2, CCPointMake(300,300), 50, 4);        //2s内跳向300,300的位置,跳跃高度为50,跳跃次数为4
2     CCActionInterval*  actionBy = CCJumpBy::create(2, CCPointMake(300,0), 50, 4);        //向x方向跳动300像素,跳跃高度为50,跳跃次数为4
3     CCActionInterval*  actionUp = CCJumpBy::create(2, CCPointMake(0,0), 80, 4);            //原地跳动 高度80 次数为4
4     CCActionInterval*  actionByBack = actionBy->reverse();                                //回复
5 
6     m_tamara->runAction( actionTo);
7     m_grossini->runAction( CCSequence::create(actionBy, actionByBack, NULL));            //顺序执行actionBy, actionByBack动作
8     m_kathia->runAction( CCRepeatForever::create(actionUp));                            //CCRepeatForever  一直重复相同的动作

顺序执行和并发执行

 1     CCMoveTo *moveTo = CCMoveTo::actionWithDuration(5, ccp(150,250));
 2     CCScaleTo *scaleTo = CCScaleTo::actionWithDuration(5, 3);
 3     CCDelayTime *waiting = CCDelayTime::actionWithDuration(2);//停滞2秒
 4     CCRotateBy *rotBy = CCRotateBy::actionWithDuration(5, 180);
 5     //顺序执行定义好的动画
 6     _sprite1->runAction(CCSequence::actions(moveTo,waiting,scaleTo,waiting,rotBy,NULL));
 7     //并发执行(同时执行)各类动画
 8     _sprite2->runAction(CCSpawn::actions(moveTo,scaleTo,rotBy));
 9     //一直重复相同的动作
10     _sprite3->runAction(CCRepeatForever::actionWithAction(rotBy));

  _sprite->stopAction(scale);//停住某个action,只能停止单个动画,在组合动画中不能停住

 

带有回调方法的移动

ActionCallFunc   无参回调

 1 void ActionCallFunc::onEnter()
 2 {
 3     ActionsDemo::onEnter();
 4 
 5     centerSprites(3);
 6 
 7     CCFiniteTimeAction*  action = CCSequence::create(
 8         CCMoveBy::create(2, CCPointMake(200,0)),
 9         CCCallFunc::create(this, callfunc_selector(ActionCallFunc::callback1)), 
10         NULL);
11 
12     CCFiniteTimeAction*  action2 = CCSequence::create(
13         CCScaleBy::create(2 ,  2),
14         CCFadeOut::create(2),
15         CCCallFuncN::create(this, callfuncN_selector(ActionSequence2::callback2)), 
16         NULL);
17 
18     CCFiniteTimeAction*  action3 = CCSequence::create(
19         CCRotateBy::create(3 , 360),
20         CCFadeOut::create(2),
21         CCCallFuncND::create(this, callfuncND_selector(ActionSequence2::callback3), (void*)0xbebabeba), 
22         NULL);
23 
24     m_grossini->runAction(action);
25     m_tamara->runAction(action2);
26     m_kathia->runAction(action3);
27 }
28 
29 
30 void ActionCallFunc::callback1()
31 {
32     CCSize s = CCDirector::sharedDirector()->getWinSize();
33     CCLabelTTF *label = CCLabelTTF::create("callback 1 called", "Marker Felt", 16);
34     label->setPosition(CCPointMake( s.width/4*1,s.height/2));
35 
36     addChild(label);
37 }
38 
39 void ActionCallFunc::callback2(CCNode* pSender)
40 {
41     CCSize s = CCDirector::sharedDirector()->getWinSize();
42     CCLabelTTF *label = CCLabelTTF::create("callback 2 called", "Marker Felt", 16);
43     label->setPosition(CCPointMake( s.width/4*2,s.height/2));
44 
45     addChild(label);
46 }
47 
48 void ActionCallFunc::callback3(CCNode* pTarget, void* data)
49 {
50     CCSize s = CCDirector::sharedDirector()->getWinSize();
51     CCLabelTTF *label = CCLabelTTF::create("callback 3 called", "Marker Felt", 16);
52     label->setPosition(CCPointMake( s.width/4*3,s.height/2));
53     addChild(label);
54 }
55    

 

有参数的回调

 1 void ActionCallFuncND::onEnter()
 2 {
 3     ActionsDemo::onEnter();
 4 
 5     centerSprites(1);
 6 
 7     CCFiniteTimeAction* action = CCSequence::create(CCMoveBy::create(2.0f, ccp(200,0)),
 8         CCCallFuncND::create(this, callfuncND_selector(ActionCallFuncND::removeFromParentAndCleanup), (void*)true),
 9         NULL);
10 
11     m_grossini->runAction(action);
12 }
13 
14 std::string ActionCallFuncND::title()
15 {
16     return "CallFuncND + auto remove";
17 }
18 
19 std::string ActionCallFuncND::subtitle()
20 {
21     return "CallFuncND + removeFromParentAndCleanup. Grossini dissapears in 2s";
22 }
23 
24 void ActionCallFuncND::removeFromParentAndCleanup(CCNode* pSender, void* data)
25 {
26     bool bCleanUp = (bool)data;
27     m_grossini->removeFromParentAndCleanup(bCleanUp);
28 }

 其他动画可以在tests里自行查找

cocos2d-x提供丰富的动画

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cocos2d-x 自带动画 的相关文章

  • Android studio的cMake编译生成.so库并调用

    第一步 添加工具 在SDK Tools中勾选安装CMake LLDB NDK 其中的LLDB是调试本地代码的工具 可以调试C 代码 第二步 创建一个最简单的官方demo File gt New gt NewProject 选中最下方的Inc
  • 使用CocosBuilder2.1结合cocos2d-x2.0.3创建动画场景

    原文地址 http article ityran com archives 2140 本为由泰然教程组成员 浅底 原创 作为一位经验丰富的游戏开发人员 这次浅底将CocosBuilder经验分享给大家 希望大家喜欢 欢迎拍砖 转载请注明出处
  • CCMoveBy和CCMoveTo有什么区别?

    CCMoveBy和CCMoveTo有什么区别 cocos2d里面的CCMoveBy 和CCMoveTo有什么区别 含义不同的地方在那块 那位高人给解释一下 谢谢 insul 2010 09 14 18 52 by是相对于当前位置 to是到该
  • Cocos2dx中文乱码问题

    最开始在网上找的一个方法 结果在wp8上报错 在windows环境下使用visual studio 开发cocos2d x 由于visual studio 默认编码为GBK 格式 而cocos2d x引擎默认编码为UTF 8 如果有用到中文
  • cocos2d-x学习笔记(持续更新)

    接受触屏事件的优先级是值越小 响应触屏事件的优先级越高 Z值越大 越外面 粒子系统设计工具 Particle Designer软件 目前只支持MAC平台 导出 plist文件 地图设计工具 Tiles 目前有两个版本 一个是Java版本 另
  • static函数与普通函数

    全局变量 外部变量 的说明之前再冠以static 就构成了静态的全局变量 全局变量本身就是静态存储方式 静态全局变量当然也是静态存储方式 这两者在存储方式上并无不同 这两者的区别虽在于非静态全局变量的作用域是整个源程序 当一个源程序由多个源
  • cocos2dx:瓦片地图加载失败及黑线问题

    问题 1 瓦片地图加载失败 运行时 获取瓦片地图的层失败 调试发现 获取的层是一个 NULL 遇到这个问题 我第一反应是图片路径有问题 但经过检查发现 路径没有问题 然我就怀疑 是我的代码有问题 然而并没有 调试无果 我就把目光转向瓦片地图
  • Texture::getSourceFileType()

    Texture getSourceFileType
  • 在 cocos2d 里面如何使用 Texture Packer 和像素格式来优化 spritesheet

    原文链接 http www cnblogs com andyque archive 2011 03 18 1988097 html 免责申明 必读 本博客提供的所有教程的翻译原稿均来自于互联网 仅供学习交流之用 切勿进行商业传播 同时 转载
  • OpenGL Vertex Buffer Objects(VBOs)

    OpenGL Vertex Buffer Objects VBOs 分类 OpenGL2010 05 20 12 53 3714人阅读 评论 13 收藏 举报 buffer float list struct 存储 工作 原创文章转载请注明
  • 浅解cocos2d-x中的CCSprite绘制原理

    cocos2d x版本为2 0 4 此画图调用的是opengl es 2 0版本 支持三角形画图 故必须有一个顶点数组 此定义定义在CCSprite h中 ccV3F C4B T2F Quad m sQuad 而这个顶点数组的定义为 4 c
  • Openframework在VS2010中的配置

    Openframework在VS2010中的配置 首先去官网下载Openframework 下载后最好解压到C盘根目录下 不然会出现各种问题 我也不知道怎么解决 随便打开其中的例程 然后右击该工程 选择属性 如下图 接着在C C 常规选项里
  • 如何使用 Marmalade 编译 Cocos2d-X?

    有谁知道教程 或者三个简单的步骤来编译我用 Cocos2d x 和 Marmalade 编写的代码 我想将我已经在 Cocos2d X 中编译和使用的代码插入到 marmalade 项目中 然后进行编译 很多地方都写得很简单 但我却很难做到
  • 如何制作双向平台box2d主体?

    我使用 box2d 创建了平台 我想要 box2d 身体检测而不是动态检测 Box2d 形状将执行以下操作 在某些条件下检测碰撞 在某些情况下不检测碰撞 两种条件都适用于同一 box2d 对象中的不同条件 任何想法都会有很大帮助 提前致谢
  • cocos2dx 应用程序中出现“在导入路径中找不到带有标签‘CocosDenshion/android’的模块”错误

    我正在尝试编译在cocos2d x上开发的Android本机应用程序 当我尝试调试我的应用程序时 出现以下错误 Android NDK jni Android mk Cannot find module with tag CocosDens
  • cocos2d-x android 设置错误 - java.lang.NullPointerException

    我正在尝试设置适用于 Android 的 cocos2d x我跟着 我通过了终端的步骤 没有任何问题 setup py命令结果符合预期 我的问题是在我设置之后NDK ROOT in C C 构建 环境部分 我得到一些java lang Nu
  • 安卓后退按钮不起作用

    我正在使用 cocos2dx 制作一个小游戏 在游戏的活动中我提供以下函数来处理后退按钮 Override public boolean onKeyDown int keyCode KeyEvent event return super o
  • 将数据库(例如 sqlite)与 cocos2d-x 一起使用

    我开始在 iPhone 上构建游戏应用程序 我正在使用 cocos2d x 游戏引擎 因为它很容易从那里移植到 Android 而且编码是用我非常熟悉的C 编写的 我想知道是否有办法在 cocos2d x 中使用任何数据库 虽然sqlite
  • 无法在 OSX 上使用 eclipse for android 链接到 cocos2dx

    我以前从来没有花这么多时间来初始设置开发环境 这有点荒谬 我正在尝试运行cocos2dx附带的演示代码 我在用着 ADK 附带的 eclipse 风格 cocos2d 2 1beta3 x 2 1 0 ndk r8c 我尝试使用 creat
  • Cocos2d-x:如何将使用XCode开发的Cocos2d-x项目移植到Android(通过Eclipse)?

    我使用 XCode 开发了一个 Cocos2d X 应用程序 当我在 iOS 设备上从 XCode 启动它时 它可以完美运行 现在 我想把它移植到Android上 我的理解是 我必须找到一种方法将我的 XCode 项目 导入 Eclipse

随机推荐

  • Idea 设置类和方法的注释(获取参数)

    Idea 添加注释 类注释 方法注释 类注释 方法注释 类注释 File Setting Editor File and Code Templates Class 注释模板 description author fqtang time DA
  • nginx下location的root和alias指令配置总结

    Nginx配置中location root和alias的关系一直很让人困惑 查询好多资料也没能搞明白 于是自己进行了实际操作 总结如下 1 root指令 说明 在location和root上 后面可以带 也可以不带 效果一样 tree da
  • centos7 RPM包之rpm命令

    RPM包与源码包的区别 1 软件包分类 源码包 C源代码包 rpm包 编译之后的二进制包 2 源码包 优点 开源 可以自由选择所需功能 可看源代码 卸载方便 直接删除安装位置 缺点 安装步骤过多 编译时间过长 3 RPM包 优点 使用简单
  • shell 输出7的倍数

    题目链接 题目描述 写一个 bash脚本以输出数字 0 到 500 中 7 的倍数 0 7 14 21 的命令 最 的语言就是shell了 注意点 数学运算用 expr 命令 且 乘法 用 在前面进行转义 变量前得加个 bin bash l
  • GETH的安装和使用(Windows)

    目录 一 Geth介绍 二 Geth安装 1 下载安装 2 配置环境变量 三 Geth私有链搭建 1 创建创世块文件 2 初始化区块链 3 启动私有节点 四 账户交易 1 创建账户 2 挖矿操作 3 查看区块和奖励 4 转账交易 一 Get
  • openGL之API学习(八十)狭义的游戏引擎的定义

    狭义的游戏引擎的定义 wiki 图形渲染 粒子系统 物理系统 骨骼系统 角色系统 动画系统 场景管理 可视剔除 层次细节 界面模块 脚本接口 纹理模型资源管理 音频功能 网络模块 AI模块 视频功能 更新功能 多核支持 外围工具链
  • Cannot find template location: classpath:/templates/(please add some templates or check your Thymel)

    一 异常信息 Cannot find template location classpath templates please add some templates or check your Thymeleaf configuration
  • C++ shared_ptr和std::move

    以shared ptr为参数调用std move并用等于号时 会调用共享指针的移动构造函数 从而使原共享指针失效 include
  • 目标检测——Detectron2的学习笔记

    1 Detectron2的官方地址 https github com facebookresearch detectron2
  • ssh root账号远程连接出现Permission denied错误

    ssh root账号远程连接出现Permission denied错误 网上搜这个问题出来的问题大多都是修改sshd config中的PermitRootLogin yes 但在我修改之后依然无法登陆 搜到了另一个不知道原因的方法 把你要远
  • 李彦宏被《时代》周刊评为全球AI领袖

    北京时间9月7日晚 时代 周刊发布了首届全球百大AI人物 百度创始人 董事长兼首席执行官李彦宏被评为全球AI领袖 时代 肯定了李彦宏对AI的长期投入及百度在AI方面取得的多项成就 李彦宏是中国最杰出的未来主义者 长期投身于AI发展的浪潮 A
  • NLP领域的预训练模型(Transformer、BERT、GPT-2等)

    英文原文链接 https www analyticsvidhya com blog 2019 03 pretrained models get started nlp 1 介 绍 如今 自然语言处理 Natural Language Pro
  • 远景智能笔试

    第一次复习 操作系统只给一个进程一个时间片 不管你内部有多少个线程 我只给你一个 怎么分配是你的事情 第一次做 30 没有听过的题目 50 知道个大概的题目 20 有把握的题目 远景智能笔试题目链接 多线程和多进程 父子进程间遵循读时共享写
  • MySQL5.7与8.0数据库驱动配置区别

    MySQL5 7 spring datasource url jdbc mysql 192 168 31 200 3306 xxl job useUnicode true characterEncoding utf 8 useSSL fal
  • 深度学习Week9-YOLOv5-C3模块实现(Pytorch)

    本文为 365天深度学习训练营 中的学习记录博客 参考文章 Pytorch实战 第P8天 YOLOv5 C3模块实现 训练营内部成员可读 原作者 K同学啊 接辅导 项目定制 了解C3的结构 方便后续YOLOv5算法的学习 采用的数据集是天气
  • WPF疑难问题之Treeview中HierarchicalDataTemplate多级样式

    文章目录 一 问题场景 二 解决思路 一 问题场景 日常为 TreeView 自定义样式过程中 如果涉及到树形多级样式不同时 又该如何去做 例如树形显示文件夹和文件节点 TreeView 样式如下
  • React 组件生命周期

    组件的生命周期可分成三个状态 Mounting 已插入真实DOM Updating 正在被重新渲染 Unmounting 已移除真是DOM 生命周期的方法有 componentWill ount 在渲染前调用 在客户端也在服务端 compo
  • Win11 锁屏、开机画面使用window聚焦 壁纸失效解决方案

    1 设置 gt 个性化 gt 锁屏界面 gt 个性化锁屏界面 切换为图片 2 打开文件资源管理器 导航栏中点击查看 gt 显示 gt 勾选隐藏的项目 3 打开C 用户 你的用户 AppData Local Packages Microsof
  • Apache Mina学习笔记:JavaNIO框架Mina、Netty、Grizzly介绍与对比

    在开始代码编写 之前 最好先对现有的主流Java NIO框架作一个简单的了解 本文对Java NIO框架 Mina Netty Grizzly作简单的介绍与对比 我们先来看看三者之间的简介 Mina Mina Multipurpose In
  • cocos2d-x 自带动画

    cocos2d x 自带动画 声明 博文内容为自己整理笔记所用 有不对的地方还请大家指正 在cocos2dx 中的tests 项目里 已经带了 足够多的 动画事例 ActionsTest 我只是看了其中一些 自我感觉比较常用的动画 Acti