程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Cocos2d-x Schedule准時器的應用實例

Cocos2d-x Schedule准時器的應用實例

編輯:關於C++

Cocos2d-x Schedule准時器的應用實例。本站提示廣大學習愛好者:(Cocos2d-x Schedule准時器的應用實例)文章只能為提供參考,不一定能成為您想要的結果。以下是Cocos2d-x Schedule准時器的應用實例正文


schedule可以完成准時器的功效,就是每隔一段時光做甚麼工作,schedule的挪用者是節點,一切的節點都可以挪用schedule函數,參數須要傳入一個函數(schedule_selector一個新的選擇器),在函數中可以完成碰撞檢測等功效。上面就詳細來看看這個函數的用法吧。

bool HelloWorld::init()
{
  bool bRet = false;
  do
  {

    CC_BREAK_IF(! CCLayer::init());

		//schedule傳入一個參數的時刻每幀都邑挪用show函數
		//this->schedule(schedule_selector(HelloWorld::show));
		//以下的schedule辦法中,傳入的第二個參數是時光,代表多長時光挪用一次show函數
		//this->schedule(schedule_selector(HelloWorld::show),1.0);
		//schedule辦法中的前倆個參數和上邊的雷同,第三個參數是辦法挪用的反復次數,反復倆次加剛開端的一次
		//總共挪用了三次,3.0代表履行下邊的語句後多長時光開端挪用函數show,就是delay的時光
		//this->schedule(schedule_selector(HelloWorld::show),1.0,2,3.0);
		//scheduleUpdate每隔一幀都邑挪用update辦法,須要我們聲明一下update辦法
		this->scheduleUpdate();

    bRet = true;
  } while (0);

  return bRet;
}

void HelloWorld::update(float dt)
{
	static int i = 0;
	if(i == 100)
	{
		//下次不再挪用update辦法,然則CCLog函數照樣會履行的。
		//this->unscheduleUpdate();
		//以下函數完成雷同的功效,它會將這個層的所以schedule辦法都停滯挪用
		this->unscheduleAllSelectors();
	}
	CCLog("i = %d",++i);
}

//show函數必需含有一個float類型的參數
void HelloWorld::show(float dt)
{
	static int i = 0;
	CCLog("time = %d",++i);
	if(i == 10)
	{
		//unschedule停滯傳入的參數代表的辦法挪用
		//以下代碼紛歧定須要寫在這個show辦法中
		this->unschedule(schedule_selector(HelloWorld::show));
	}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved