天天看點

cocos2d-x 擷取目前播放第幾幀最高效的方法

前言

把網際網路翻了個遍, 所有的方法都千篇一律. 用循環去判斷!

很神奇的是, 幾乎所有博文舉的例子, 連數字都是一樣的.

這麼一個效率爛成渣的方法, 居然被普遍贊同.

以下是廣為流傳的方法.

這些例子連注釋, 數字都完全一樣...

如果不是因為這一點, 也許我不會這麼不爽.

cocos2dx源碼:

cocos2d-x 擷取目前播放第幾幀最高效的方法

我們看看 animate 的定義, 内部存在一個 int _nextframe,

看看這個變量在什麼地方被引用.

cocos2d-x 擷取目前播放第幾幀最高效的方法

很容易發現, 除了定義和初始化, 隻有2個地方用到了這個值.

跳過去看看..

cocos2d-x 擷取目前播放第幾幀最高效的方法

到這裡就真相大白了, _nextframe确實表示下一幀動畫的索引.

但是cocos2dx沒有為我們提供接口擷取這個變量..

是以我們隻需要加一個共有接口,

在需要得到目前播放動畫時, 調用此函數, 将結果-1, 就得到了目前的播放幀...

尾聲

在此非常鄙視那些不經大腦, 瞎轉載, 瞎宣傳, 還說一大堆心得之人