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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值