cocos 三 绘制图形与调用回调函数
time1--;
char str[100];
//auto label1 = (Label* )this->getChildByTag(100);
sprintf(str,"Time:%d",time1); // 设置变化Label的值
label->setString(str);
绘制图形
绘制图形的话采用的是引擎封装好的DrawNode类来实现
auto node = DrawNode::create();
node->drawDot(Vec2(100, 100), 5, Color4F::GREEN);
this->addChild(node);
如果需要的话可以重写父类提供的create()函数
DrawNodeTest * DrawNodeTest:: create(){
DrawNodeTest * rec = new DrawNodeTest();
if (rec && rec->init()) {
rec->autorelease();
return rec;
}else{
CC_SAFE_DELETE(rec);
return NULL;
}
}
bool DrawNodeTest:: init(){
if (!Layer::init()) {
return false;
}
node = DrawNode::create();
node->drawLine(…); // 画一条线
调用周期回调函数
// 使用系统默认的时间调度,这样会在每一帧调用重写的父类的update函数
//this->scheduleUpdate();
// 自定义时间调度 2.0f <=> 2秒为一个周期进行回调
//this->schedule(CC_CALLBACK_1(DrawNodeTest::myUpdate, this), "myupdate");
this->schedule(CC_CALLBACK_1(DrawNodeTest::myUpdate, this),2.0f,"key1");
// this->unschedule("myupdate"); // 停止调用
// 只调用一次时间调度
this->scheduleOnce(CC_CALLBACK_1(DrawNodeTest::myUpdate, this),2.0f,"once");
return true;
}
void DrawNodeTest:: update(float dt){
log("update!!!");
}
void DrawNodeTest::myUpdate(float dt){
log("my update!!!");
t--;
if (t<90) {
this->unschedule("myupdate"); // 停止调用名字为myupdate的函数
this->unscheduleAllCallbacks();// 停止所有回调函数
}
auto label = (Label*)this->getChildByTag(100);
char str[100];
sprintf(str, "time:%d”,t);// 融合字符串
label->setString(str);
}
数组、字典、数据结构
__Array __Dictionary 与OC中用法基本一样