在原有的基础上继续对精灵来进行操作做一个简单的帧动画。
一、先设置好帧回掉函数:
//设置帧回掉函数
schedule(schedule_selector(<#_SELECTOR#>))
先看函数的原型
#define schedule_selector(_SELECTOR) (SEL_SCHEDULE)(&_SELECTOR)
//SEL_SCHEDULE 是这么定义
typedefvoid (CCObject::*SEL_SCHEDULE)(float);
表示 SEL_SCHEDULE是一个指向object类成员函数的指针 这个成员函数是一个无返回值 参数为float型的。
下面定义一个 这样的函数
class MainScene:public CCLayer {
private:
void update(float t); //定义一个帧回掉函数
public:
virtual bool init(); //初始化
static CCScene* scene(); //类方法用来创建场景对象
CREATE_FUNC(MainScene); //创建MainScene层对象
};
函数的实现:
..........
//将精灵添加到自己的对象
this->addChild(sprite);
//设置帧回掉函数
schedule(schedule_selector(MainScene::update));
//设置回掉时间
scheduleOnce(schedule_selector(MainScene::update),1); //1s回掉
return true;
}
//回掉函数
voidMainScene::update(float t)
{
/*设置回掉函数的操作*/
//让每一帧向右移动记得把sprite设置为全局变量
sprite->setPosition(ccpAdd(sprite->getPosition(),ccp(1,0))); //让精灵每一帧在x轴上加1
}
可以看到精灵慢慢往右边移动。。