cocos2d-x 获取当前播放第几帧最高效的方法
前言
把互联网翻了个遍, 所有的方法都千篇一律. 用循环去判断!
很神奇的是, 几乎所有博文举的例子, 连数字都是一样的.
这么一个效率烂成渣的方法, 居然被普遍赞同.
以下是广为流传的方法.
; i < ; i++)
{
//5张图5帧
if(prite->displayedFrame() == anim->getFrames()->getObjectAtIndex(i))
{
//这个i返回的只是一个索引,如果帧数是从1开始计算就要+1
currentAnimIndex = i+;
}
}
这些例子连注释, 数字都完全一样.
这简直让人太呵呵了.
揭秘

我们看看 Animate 的定义, 内部存在一个 int _nextFrame,
看看这个变量在什么地方被引用.

很容易发现, 除了定义和初始化, 只有2个地方用到了这个值.
跳过去看看..

到这里就真相大白了, _nextFrame确实表示下一帧动画的索引.
但是cocos2dx没有为我们提供接口获取这个变量..
因此我们只需要加一个共有接口,
int getNextFrameIndex() const { return _nextFrame; }
在需要得到当前播放动画时, 调用此函数, 将结果-1, 就得到了当前的播放帧...
尾声
在此非常鄙视那些不经大脑, 瞎转载, 瞎宣传, 还说一大堆心得之人.
cocos2d-x 获取当前播放第几帧最高效的方法的更多相关文章
- iOS获取视频中的指定帧的两种方法
方法一 :AVFoundation #import <AVFoundation/AVFoundation.h> - (UIImage *)thumbnailImageForVideo:(N ...
- 从H264码流中获取视频宽高 (SPS帧) 升级篇
之前写过 <从H264码流中获取视频宽高 (SPS帧)> . 但发现很多局限性,而且有时解出来是错误的. 所以重新去研究了. 用了 官方提供的代码库来解析. 花了点时间,从代码库里单独把解 ...
- java获取Mp3播放时长
最近有一个用java获取mp3播放时长的需求,有两种,一种本地文件,一种网络文件,其中获取网络mp3播放时间的方法找了挺久终于找到个能用的了. 第一种很简单,下载个jar包 jaudiotagger ...
- ztree获取当前选中节点子节点id集合的方法(转载)
本文实例讲述了ztree获取当前选中节点子节点id集合的方法.分享给大家供大家参考.具体分析如下: 要求:获取当前选中节点的子节点id集合. 步骤: 1.获取当前节点 2.用ztree的方法trans ...
- python获取字母在字母表对应位置的几种方法及性能对比较
python获取字母在字母表对应位置的几种方法及性能对比较 某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://project ...
- ASP.NET网站中获取当前虚拟目录的应用程序目录的方法(转)
[原创]ASP.NET网站中获取当前虚拟目录的应用程序目录的方法 ASP.NET网站中获取当前虚拟目录的应用程序目录的方法1.问题描述:有时候,某个网页控件会被不同目录下文件使用,此时如果该控件中有一 ...
- Js获取后台集合List的值和下标的方法
Js获取后台集合List的值和下标的方法 转载自:http://blog.csdn.net/XiaoKanZheShiJie/article/details/47280449 首先用的是struts2 ...
- vc/mfc获取rgb图像数据后动态显示及保存图片的方法
vc/mfc获取rgb图像数据后动态显示及保存图片的方法 该情况可用于视频通信中获取的位图数据回放显示或显示摄像头捕获的本地图像 第一种方法 #include<vfw.h> 加载 vfw3 ...
- javascript获取json对象的key名称的两种方法
javascript获取json对象的key名称的两种方法 数据处理中,你可能接收到一个不确定内容格式的json对象,然后要把key的值提取出来.今天试过两种可以提取json key的方法,均可以正常 ...
随机推荐
- ASP.NET页面不被缓存
设置ASP.NET页面不被缓存分类:ASP.NET (3531) (1) /// <summary> /// 设置页面不被缓存 /// </summa ...
- J2EE和EJB有什么关系?
其实j2EE就是java的企业版,与javaSE(标准版)有是有区别的,所以运行环境会有差异(简单点可以说,这是两组不同的接口),我们一般所熟悉的tomcat仅仅只实现了j2ee的一小部分规范,它只是 ...
- Linux&shell之Shell脚本
写在前面:案例.常用.归类.解释说明.(By Jim) 使用多条命令shell脚本的关键是可以输入多条命令,甚至可以将一条命令的结果传递给另一条命令.date;who(两个命令shell脚本的写法) ...
- QDomDocument Access violation writing location
今天犯了一个非常2的错误! 为了将面板参数保存起来,选择用QDomDocument构造Dom树,然后用doc.toString()方法返回符合xml格式的QString.如: QString CutF ...
- 【转】C/C++ 内存对齐
[转自]http://wenku.baidu.com/view/8eaaa26925c52cc58bd6bed2.htmlC/C++内存对齐 一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都 ...
- Ural1297 Palindrome(后缀数组)
[题目链接] http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=12406 [题意] 求最长回文子串. [思路] 将字符串 ...
- trigger 触发器
--trigger --在SC表上建了一个触发器,查看inserted和deleted表中内容. create trigger tri_1 on sc for insert,update,delete ...
- Python文件中文编码问题
读写中文 需要读取utf-8编码的中文文件,先利用sublime text软件将它改成无DOM的编码,并且在第一行写: # encoding: utf-8 然后用以下代码: with codecs.o ...
- 《Linear Algebra and Its Applications》-chaper3-行列式-行列式初等变换
承接上一篇文章对行列式的引入,这篇文章将进一步记录关于行列式的有关内容,包括如下的几个方面: (1)行列式3个初等变换的证明. (2)转置行列式与原行列式相等的证明. (3)定理det(AB) = d ...
- 动态规划——概率dp
所谓概率dp,用动态规划的思想找到一个事件中可能发生的所有情况,然后找到符合要求的那些情况数,除以总数便可以得到符合要求的事件发生的概率.其核心思想还是通过dp来得到事件发生的所有情况,很类似在背包专 ...