cocos2d-x学习笔记(13)--schedule
来源:互联网 发布:如何电脑共享手机网络 编辑:程序博客网 时间:2024/06/06 12:54
在游戏中,要检测两个运动的物体什么时候否碰撞,就必须在每一帧中对两个物体的矩阵范围进行判断,是否出现相交。同样的,一些游戏动画,为了做出动画效果,我们在设置动作的同时,还需要对每一帧的画面进行布局,在cocos2d-x中就可以使用schedule()函数实现了。
下面是schedule()函数的定义:
- void CCNode::schedule(SEL_SCHEDULE selector)
- {
- this->schedule(selector, 0);
- }
- void CCNode::schedule(SEL_SCHEDULE selector, ccTime interval)
- {
- CCAssert( selector, "Argument must be non-nil");
- CCAssert( interval >=0, "Argument must be positive");
- CCScheduler::sharedScheduler()->scheduleSelector(selector, this, interval, !m_bIsRunning);
- }
void CCNode::schedule(SEL_SCHEDULE selector){this->schedule(selector, 0);}void CCNode::schedule(SEL_SCHEDULE selector, ccTime interval){CCAssert( selector, "Argument must be non-nil");CCAssert( interval >=0, "Argument must be positive");CCScheduler::sharedScheduler()->scheduleSelector(selector, this, interval, !m_bIsRunning);}
这里我只说第二个函数,第一个参数是回调类型,这里使用schedule_selector,如schedule_selector(MyClass::MyCallbackFunction),第二个参数是间隔时间,即多久调用MyCallbackFunction函数;
step1:创建cocos2d-win32项目,并命名为scheduler;
step2:在HelloWorldScene.h中添加如下类:
- class ScheduleTest:public CCLayer
- {
- protected:
- int posX;//用于每次调用addTarget函数时增加对象水平方向的位置
- public:
- ScheduleTest();
- virtual void onEnter();
- void addTarget(ccTime dt);//每次调用会增加一个精灵
- };
class ScheduleTest:public CCLayer{protected:int posX;//用于每次调用addTarget函数时增加对象水平方向的位置public:ScheduleTest();virtual void onEnter();void addTarget(ccTime dt);//每次调用会增加一个精灵};
step3:在HelloWorldScene.cpp中添加如下函数:
- ScheduleTest::ScheduleTest()
- {
- posX = 0;
- }
- void ScheduleTest::onEnter()
- {
- CCLayer::onEnter();
- schedule(schedule_selector(ScheduleTest::addTarget), 1);
- }
- void ScheduleTest::addTarget(ccTime dt)
- {
- posX += 10;
- CCSprite* player = CCSprite::spriteWithFile("player.png");
- addChild(player);
- player->setPosition(ccp(posX, 100));
- }
ScheduleTest::ScheduleTest(){posX = 0;}void ScheduleTest::onEnter(){CCLayer::onEnter();schedule(schedule_selector(ScheduleTest::addTarget), 1);}void ScheduleTest::addTarget(ccTime dt){posX += 10;CCSprite* player = CCSprite::spriteWithFile("player.png");addChild(player);player->setPosition(ccp(posX, 100));}
同时修改HelloWorldScene中的scene函数,将HelloWorld *layer = HelloWorld::node();改为
ScheduleTest* layer = new ScheduleTest();
step4:编译运行程序,可以看到每隔一秒钟,背景就会增加一个人物;
源代码下载地址:http://download.csdn.net/download/wen294299195/4525824
- cocos2d-x学习笔记(13)--schedule
- cocos2d-x学习笔记(13)--schedule
- cocos2d-x初学笔记12:定时器schedule
- cocos2d-x初探学习笔记(23)--其他(屏幕旋转,schedule,系统语言)
- 【Cocos2d-X开发学习笔记】第11期:时间调度schedule函数的使用
- cocos2d-x初探学习笔记--其他(屏幕旋转,schedule,系统语言)
- Cocos2d-x学习笔记(六) 定时器Schedule的简单应用
- 我的Cocos2d-x学习笔记(十)定时调度器(scheduleUpdate、scheduleOnce、schedule)
- cocos2d-x初探学习笔记(23)--其他(屏幕旋转,schedule,系统语言)
- cocos2d-x schedule用法
- cocos2d-x schedule 定时器
- cocos2d-x 定时器 schedule
- cocos2d-x 定时器 schedule
- cocos2d-x schedule 定时器
- cocos2d-x schedule
- cocos2d-x schedule 定时器
- cocos2d-x 定时器schedule
- Cocos2d-x schedule用法
- Grails Domain自动验证的i18n
- dom4j(合并转载文章)
- DedeCMS获取文档当前栏目所在目录链接URL
- TOMCAT配置SSL认证为HTTPS协议服务
- 转载:FastDFS的配置、部署与API使用解读(5)FastDFS配置详解之Tracker配置
- cocos2d-x学习笔记(13)--schedule
- 无法在这个位置找到: {dede:include filename="
- 连接池并发的实现原理
- HIBERNATE懒加载
- ubuntu 集成在桌面右键svn git软件rabbitvcs
- Apache配置tomcat集群
- 转载:FastDFS的配置、部署与API使用解读(6)FastDFS配置详解之Storage配置
- 小偷程序员
- sqlite3使用简介(内含解决sqlite内存的方法)