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); }
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());