最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Cocos2dx實現(xiàn)數(shù)字跳動效果

 更新時間:2020年09月18日 11:03:16   作者:auccy  
這篇文章主要為大家詳細介紹了Cocos2dx實現(xiàn)數(shù)字跳動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Cocos2dx實現(xiàn)數(shù)字跳動效果的具體代碼,供大家參考,具體內容如下

封裝的類如下:

.h文件

class DigitalBeatText:public cocos2d::Node
{
public:
 DigitalBeatText();
 ~DigitalBeatText();
 static DigitalBeatText *create(int value);
 
 void setValue(int newValue);
protected:
 bool init(int value);
 
 void setValueNoAction(int newValue);
 void startRoll();
 void stopRoll();
 
 void onTimeHandler(float dt);
protected:
 cocos2d::ui::Text * m_txt;
 int  m_lastValue;
 int  m_newValue;
 int  m_valueGap;  //數(shù)字跳動間隔
 float    m_scheduleInterval;//調度器間隔
 bool    m_isReverse;  // true: 從大到小
};

.cpp文件:

DigitalBeatText::DigitalBeatText() 
:m_txt(nullptr)
, m_lastValue(0)
, m_newValue(0)
, m_valueGap(0)
, m_scheduleInterval(1.0f/60.f)
, m_isReverse(false)
{
 
}
 
DigitalBeatText::~DigitalBeatText()
{
}
 
DigitalBeatText* DigitalBeatText::create(int value)
{
 auto pRet = new DigitalBeatText;
 if (pRet->init(value))
 {
  pRet->autorelease();
  return pRet;
 }
 CC_SAFE_DELETE(pRet);
 return nullptr;
}
 
bool DigitalBeatText::init(int value)
{
 if (!Node::init()){
  return false;
 }
 char buff[16] = { 0 };
 m_txt = ui::Text::create();
 m_txt->setFontSize(36);
 sprintf(buff, "%d", value);
 m_txt->setString(buff);
 this->addChild(m_txt);
 return true;
}
 
void DigitalBeatText::setValue(int newValue)
{
 m_isReverse = newValue < m_lastValue;
 stopRoll();
 m_newValue = newValue;
 startRoll();
}
 
void DigitalBeatText::setValueNoAction(int newValue)
{
 m_lastValue = newValue;
 m_newValue = newValue;
 m_txt->setString(cocos2d::StringUtils::toString(m_lastValue));
}
 
void DigitalBeatText::startRoll()
{
 int count = m_newValue - m_lastValue;
 if (count>0){
  m_valueGap = ceil(count / (1.0 / m_scheduleInterval));
 }else{
  m_valueGap = floor(count / (1.0 / m_scheduleInterval));
 }
 schedule(CC_SCHEDULE_SELECTOR(DigitalBeatText::onTimeHandler), m_scheduleInterval);
}
 
void DigitalBeatText::stopRoll()
{
 unschedule(CC_SCHEDULE_SELECTOR(DigitalBeatText::onTimeHandler));
}
 
void DigitalBeatText::onTimeHandler(float dt)
{
 m_lastValue += m_valueGap;
 bool stop = false;
 if (!m_isReverse)
 {
  if (m_lastValue >= m_newValue){
   m_lastValue = m_newValue;
   stop = true;
  }
 }
 else{
  if (m_lastValue <= m_newValue){
   m_lastValue = m_newValue;
   stop = true;
  }
 }
 m_txt->setString(cocos2d::StringUtils::toString(m_lastValue));
 if (stop){
  this->stopRoll();
 }
}

使用示例:

m_index = 1;
m_beatT = DigitalBeatText::create(m_index);
m_beatT->setPosition(visibleSize*0.5);
 this->addChild(m_beatT);
 
m_index += RandomHelper::random_int(0, 100) - 50;
m_beatT->setValue(m_index);

效果如圖:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C語言中feof函數(shù)和ferror函數(shù)示例詳解

    C語言中feof函數(shù)和ferror函數(shù)示例詳解

    在C語言中feof函數(shù)用于檢查文件流的結束標志,判斷文件在讀取時是否已經到達了文件的末尾,這篇文章主要給大家介紹了關于C語言中feof函數(shù)和ferror函數(shù)的相關資料,需要的朋友可以參考下
    2024-09-09
  • C語言深入講解動態(tài)內存分配函數(shù)的使用

    C語言深入講解動態(tài)內存分配函數(shù)的使用

    這篇文章主要介紹了C語言動態(tài)內存分配,C語言內存管理相關的函數(shù)主要有realloc、calloc、malloc、free、柔性數(shù)組等,下面這篇文章帶大家了解一下
    2022-05-05
  • FFmpeg實現(xiàn)多線程編碼并保存mp4文件

    FFmpeg實現(xiàn)多線程編碼并保存mp4文件

    這篇文章主要為大家介紹了FFmpeg如何持續(xù)的從指定內存中讀取原始數(shù)據(jù),再將解碼數(shù)據(jù)存入隊列中,并通過單獨的線程進行編碼,最后保存為mp4文件,感興趣的可以了解下
    2023-08-08
  • C語言實現(xiàn)順序表的基本操作指南(注釋很詳細)

    C語言實現(xiàn)順序表的基本操作指南(注釋很詳細)

    線性表是最簡單的數(shù)據(jù)結構,而順序表又是最簡單的線性表,其基本思想是用一段地址連續(xù)的儲存單元依次存儲線性表的數(shù)據(jù)元素,下面這篇文章主要給大家介紹了關于C語言實現(xiàn)順序表的基本操作,需要的朋友可以參考下
    2021-10-10
  • C++實現(xiàn)LeetCode(126.詞語階梯之二)

    C++實現(xiàn)LeetCode(126.詞語階梯之二)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(126.詞語階梯之二),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • C語言三子棋一步步實現(xiàn)詳程

    C語言三子棋一步步實現(xiàn)詳程

    三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。將正方形對角線連起來,相對兩邊依次擺上三個雙方棋子,只要將自己的三個棋子走成一條線,對方就算輸了,想用c語言做出這個游戲,事實上也是比較簡單的,下面通過c語言進行對五子棋的分析
    2022-02-02
  • 使用C/C++訪問MySQL的教程詳解

    使用C/C++訪問MySQL的教程詳解

    在實際開發(fā)中,語言連接MySQL是為了能夠在編程語言中與MySQL數(shù)據(jù)庫進行交互和操作,大部分情況我們都是通過語言連接MySQL,建立與MySQL數(shù)據(jù)庫的連接,本篇文章主要講解使用C/C++訪問MySQL的教程,需要的朋友可以參考下
    2024-08-08
  • C++編程語言實現(xiàn)單鏈表詳情

    C++編程語言實現(xiàn)單鏈表詳情

    這篇文章主要介紹的是利用C語言實現(xiàn)單鏈表,實現(xiàn)的是鏈表中最簡單的一種單鏈表且每個結點中只含有一個指針域,下面將詳細舉例說明,需要的朋友可以參考一下
    2021-10-10
  • C語言實現(xiàn)進程5狀態(tài)模型的狀態(tài)機

    C語言實現(xiàn)進程5狀態(tài)模型的狀態(tài)機

    狀態(tài)機在實際工作開發(fā)中應用非常廣泛,用這幅圖就可以很清晰的表達整個狀態(tài)的流轉。本篇通過C語言實現(xiàn)一個簡單的進程5狀態(tài)模型的狀態(tài)機,讓大家熟悉一下狀態(tài)機的魅力,需要的可以參考一下
    2022-10-10
  • C++使用opencv讀取圖片的操作代碼(圖像處理)

    C++使用opencv讀取圖片的操作代碼(圖像處理)

    這篇文章主要介紹了C++使用opencv讀取圖片,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04

最新評論

彝良县| 项城市| 成都市| 山阴县| 永善县| 班戈县| 卓尼县| 土默特右旗| 宜丰县| 厦门市| 乌苏市| 成武县| 陕西省| 巴彦县| 襄樊市| 武威市| 赤壁市| 毕节市| 海晏县| 增城市| 林芝县| 阿鲁科尔沁旗| 渭南市| 通化市| 山东省| 宜宾县| 新干县| 桑日县| 闽清县| 玉山县| 郯城县| 葫芦岛市| 九江市| 额尔古纳市| 肇东市| 沁源县| 万盛区| 册亨县| 任丘市| 夹江县| 朝阳市|