cocos2dx定时器

1 . 帧定时器:

1.1. 头文件声明:
void update(float) override;
1.2. 实现update方法
void HelloWorld::update(float dt)
{
CCLog(“dt = %g”, dt);
static int i = 0;
i++;
if (i == 120)
{
unscheduleUpdate();
CCLog(“schedule is over”);
}
}
1.3. scheduleUpdate(); 调用定时器

帧循环定时器,1秒调用60次

2. 普通自定义定时器:

2.1. 声明定时器:
void mySchedule(float dt);
2.2. void T07Schedule::mySchedule(float dt)
{
CCSprite * spr = (CCSprite *)getChildByTag(100);
float v = 300 / 2; // 速度

static int count = 0;
count++;

static bool flag = true;
if (flag)
{
  // 速度* 时间
    if ((spr->getPositionX() + v*dt)<400);     
    {
        spr->setPositionX(spr->getPositionX() + v*dt);
    }
    else
    {
        flag = !flag;
    }
}
if (!flag)
{
    if ((spr->getPositionX() - v*dt) > 100)
    {
        spr->setPositionX(spr->getPositionX() - v*dt);
    }
    else
    {
        flag = !flag;
    }
}

if (count == 1000)
{
    unschedule(schedule_selector(T07Schedule::mySchedule));
}

}
实现定时器
2.3. //scheduleUpdate(); unScheduleUpdate();
//scheduleOnce(schedule_selector(T07Schedule::mySchedule), 2);
schedule(schedule_selector(T07Schedule::mySchedule));
//功能等同scheduleUpdate(); 回调函数可以自定义
//schedule(schedule_selector(T07Schedule::mySchedule), 3);
//CCNode::schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
//schedule(schedule_selector(T07Schedule::mySchedule), 1, 10, 4);
//4s以后,每隔1s执行一次回调.共执行10次

你可能感兴趣的:(cocos2d)