cocos2dx常用工具

1、Update(時間)

cocos2dx中有三種定時器:schedule,scheduleUpdate,scheduleOnce

scheduleUpdate這個計時器會按照幀頻每一次執行默認的update函數,update函數是繼承自父類的虛函數,可以自己重新實現,在實現完成update函數之後,就可以用scheduleUpdate來調用它。


schedule這個計時器,可以自己指定計時器間隔的時間,它有幾個版本的重載函數可供選擇


void Node::schedule(SEL_SCHEDULE selector)
{
    this->schedule(selector, 0.0f, kRepeatForever, 0.0f);
}

void Node::schedule(SEL_SCHEDULE selector, float interval)
{
    this->schedule(selector, interval, kRepeatForever, 0.0f);
}

void Node::schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
{
    CCASSERT( selector, "Argument must be non-nil");
    CCASSERT( interval >=0, "Argument must be positive");

    _scheduler->schedule(selector, this, interval , repeat, delay, !_running);
}

三個 版本的函數都有一個共同的參數就是第一個的函數指針,大家可以看下這個參數類型的具體定義就知道了,是一個返回類型爲void參數爲float的函數指針,也就是通過計時器控制的那個函數的函數指針。之後可以指定時間間隔,重複次數等等的各種參數.


2、文件

C++和c語言一樣都有專門對文件操作的函數,但是,在一些移動設備中,有些個目錄是不能夠進入並且寫入文件的。所以COCOS2dx特意封裝了一個Fileutils類來幫助我們操縱函數 。


我們編寫的每一個cocos2dx程序在不同的平臺上運行的時候都會有一個可寫入的目錄,也就是說,你手機上的一些軟件出了自己的目錄或者一些其他的目錄是不允許去別的目錄上寫的。

getWritablePath()利用這個方法找到自己的可寫入目錄,並且通過這個目錄與文件名的結合給C++操縱文件的函數fopen指定文件的準確路徑,然後在進行寫入數據。


	auto fu = FileUtils::getInstance();

	log("%s", fu->getWritablePath().c_str());
	FILE *p = fopen(fu->fullPathFromRelativeFile("data.txt", fu->getWritablePath()).c_str(), "a+");
	fprintf(p, "xuran");
	fclose(p);

上面說的都是寫入文件,在讀文件的時候,cocos2dx就沒有那麼麻煩了,他定義了一個api叫做getdatafromfile,直接調用這個函數並且填入相應的文件路徑即可

	Data da = fu->getDataFromFile(fu->fullPathFromRelativeFile("data.txt",fu->getWritablePath()).c_str());

	log("%s", da.getBytes());


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章