`
3895177
  • 浏览: 23680 次
社区版块
存档分类
最新评论

cocos2d-x获取当前动画是第几帧

 
阅读更多

这段时间新项目涉及到很多animation,有时要知道当前动画播放到了第几帧,那么如何获取是第几帧呢?

 

有一个很龊的方法,就是根据时间判断,因为每一帧的时间我们是预先定了的,所以自己设置schedule多少时间之后开始执行。



还有一个好点的办法,就是真的获取到是第几帧:
假设有一个CCAnimation* anim,由5张图组成。
将这个anim包装成CCAnimate* animate。使用的时侯sprite->runAction(animate),播放动画。


这里我们来获取第几帧:
int currentAnimIndex = 0; //精灵当前播放的是第几帧
for(int i = 0; i < 5; i++)

 //5张图5帧
 if(prite->displayedFrame() == anim->getFrames()->getObjectAtIndex(i)) 
 {
    //这个i返回的只是一个索引,如果帧数是从1开始计算就要+1
    currentAnimIndex = i+1; 
 }
}


prite->displayedFrame()获取的是当前精灵动画所显示的帧精灵指(CCSpriteFrame).

 

anim->getFrames()获得的是整个动画所保存的帧精灵指针数组(CCSpriteFrame)

 

其实我们创建animation时所添加进去的图片文件都会转化成CCSpriteFrame保存起来。

 

animation->getFrames()->getObjectAtIndex(i)获取的是animation中帧精灵数组中某个索引的元素,这个元素也是CCSpriteFrame.

 

获取的原理就是,我通过sprite->displayedFrame()获得我当前精灵所播放的CCSpriteFrame,然后去跟我的动画数组(CCSpriteFrame数组)去做比较,取得对应元素在数组中的下标从而获取当前精灵播放的是第几帧。

分享到:
评论

相关推荐

    Cocos2d-x学习笔记

    - 掌握Cocos2d-x的动画和物理引擎:Cocos2d-x对动画和物理引擎有一定的集成,需要了解如何使用这些工具来丰富游戏内容。 - 学习脚本语言:虽然Cocos2d-x支持多语言开发,但了解JavaScript、Lua等脚本语言,可以快速...

    Cocos2d-x《开心斗地主》棋牌类游戏源码

    《开心斗地主》是一款基于Cocos2d-x框架开发的经典棋牌类游戏,适用于移动平台。Cocos2d-x是一个跨平台的2D游戏开发框架,由C++编写,支持iOS、Android、Windows等多个操作系统。它以其高效、易用的特点,深受游戏...

    Cocos2d-X 3.2 API 文档

    在Cocos2d-X 3.2 API文档中,你可以找到以下几个核心知识点: 1. **初始化与项目设置**:学习如何创建项目、配置编译环境,以及如何初始化引擎,这些都是开发游戏的第一步。 2. **场景(Scene)与层(Layer)管理*...

    cocos2d-x 实例源码

    cocos2d-x提供了一个强大的渲染系统,支持精灵(Sprite)、层(Layer)、场景(Scene)等基本游戏元素,以及动作(Actions)和动画(Animations)功能,使得开发者可以轻松创建动态游戏画面。同时,cocos2d-x内置了...

    精通COCOS2D-X游戏开发 进阶卷-565_14177674

    4. **动画与特效**:讲述Cocos2d-x中的动画系统,包括帧动画、骨骼动画的实现,以及粒子系统和过渡效果的应用。 5. **用户交互**:讲解如何处理触摸事件、键盘事件,实现游戏的输入控制,以及UI组件的创建和布局。 ...

    第3章 Cocos2d-x架构一瞥

    Cocos2d-x支持丰富的第三方工具,如TexturePacker、SpriteHelper、Tiled、zwoptex、ParticleDesigner、GlyphDesigner、CocosBuilder等,而CocosStudio则是集成了场景编辑、动画设计、粒子特效和骨骼等功能的Cocos2d-...

    cocos2d-x 2012-03-31开发者大会演讲稿PDF(6)-刘万千 基于cocos2d-x的跨平台游戏制作20120331.pdf

    他们开发的几款游戏,如《地铁总动员》、《奇迹之城》、《乐动达人》和《三国来了》,都是基于cocos2d-x开发的跨平台游戏。 - **《地铁总动员》**:这是一款以挤地铁为主题的轻松幽默的消除类游戏,总下载量超过一...

    cocos2d-x-3.4.zip

    在cocos2d-x 3.4中,有几个核心的组成部分和关键特性值得一提: 1. **渲染引擎**:cocos2d-x 的渲染引擎基于OpenGL ES,为游戏提供了高效的2D图形绘制能力。开发者可以通过Sprite、Label、Layer等类轻松创建游戏...

    《Cocos2D-x权威指南》代码实例

    在学习Cocos2D-x时,以下几个核心知识点是必不可少的: 1. **基本概念**:了解Cocos2D-x中的节点(Node)、场景(Scene)、层(Layer)和精灵(Sprite)的概念,它们构成了游戏的基本构建块。节点是所有可显示或有...

    Cocos2d-x 地图行走的实现2

    Cocos2d-x 没有内置的路径查找功能,但开发者可以使用第三方库或自实现算法。 总结来说,"Cocos2d-x 地图行走的实现2"这个主题涵盖了从地图加载、角色定位、碰撞检测、动画制作到用户输入响应等一系列游戏开发的...

    Cocos2d-x时钟

    在Cocos2d-x中,时钟功能的实现通常涉及到以下几个关键知识点: 1. **Cocos2d-x的时间管理**:Cocos2d-x有一个内置的时间系统,通过`cocos2d::Director`类来管理。`Director`是游戏的主要调度器,它维护着游戏的...

    cocos2d-x封神榜demo源码

    《cocos2d-x封神榜demo源码》是一个基于cocos2d-x游戏引擎开发的项目,旨在为初学者提供一个深入理解游戏开发过程的实例。cocos2d-x是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台...

    一个Cocos2D-X的ios游戏源码

    Cocos2D-X是一款强大的跨平台游戏开发框架,它基于C++,支持iOS、Android、Windows等操作系统。这个“一个Cocos2D-X的ios游戏源码”项目,显然是一个外国人开发的iOS游戏的源代码,对于学习和理解Cocos2D-X在iOS平台...

    Cocos2d-X 2.2.1 API 文档

    3. **动作与动画**:Cocos2d-X提供了一套完整的动作和动画系统,如MoveTo、ScaleTo、RotateTo等,用于控制Node的行为和状态变化,实现游戏对象的动态表现。 4. **事件处理**:框架内置了事件处理机制,如触摸事件、...

    cocos2d-x 2.1.4 帮助文档

    10. **扩展库**:cocos2d-x生态系统中有许多第三方扩展,如粒子系统、图集(TexturePacker)支持、UI组件等,这些在2.1.4版本中都有详细的接口说明。 文档中的“html”文件夹包含的是网页形式的接口说明,开发者...

    Cocos2d-X权威指南完全扫描版.part2

    《Cocos2d-X权威指南完全扫描版》是关于Cocos2d-X游戏开发的一本重要参考资料,该书深入浅出地介绍了Cocos2d-X框架的各个方面,旨在帮助开发者们掌握这一强大的游戏引擎。本部分是该书的第二部分,由于文件大小的...

    cocos2d-lua整合到ios工程

    本文将详细介绍如何将Cocos2d-x Lua项目整合到iOS工程中,以便在iOS应用中运行Cocos2d-x的lua脚本,实现游戏或动画功能。 首先,确保你已经安装了Xcode、Cocos2d-x SDK以及Cocos2d-x Lua的开发环境。这包括安装...

    COCOS2d-X by Example Beginner's Guide

    3. 游戏动画和特效:如何使用Cocos2d-x的动画系统给游戏添加动画效果和视觉特效。这包括帧动画、粒子系统等。 4. 物理引擎的集成:介绍如何将物理引擎集成到游戏中,例如Box2D,以及如何管理游戏中的碰撞检测、重力...

    cocos2dx水浒卡牌源码

    cocos2d-x虽然不直接提供网络库,但可以结合第三方库如socket.io、protobuf等实现网络通信。 5. **动画效果**:cocos2d-x提供了强大的动画系统,可以制作出各种酷炫的效果,如卡牌翻转、技能特效等。通过组合动作和...

Global site tag (gtag.js) - Google Analytics