2019独角兽企业重金招聘Python工程师标准>>>

调度器(schedulers)负责以一定时间间隔触发一个给定的回调方法(callback)。

两种不同类型的回调:

1、update selector:update sellctor 会在每帧被调用,你可以自定义它的优先级。

2、自定义selector:自定义selector可以在每帧被调用,或以自定义的时间间隔调用。

尽可能避免使用自定义selector。使用update selector比较快,且内存消耗较小。

通过:CCDirector::sharedDirector()->getScheduler();获取全局定时器。

API:

//更新定时器,每帧调用1次。每个节点只能有1个被调度的update函数
void scheduleUpdate(void);
//卸载更新定时器
void unscheduleUpdate(void);  //自定义定时器,如果重复调用,那调用间隔会更新,而不会再次调用
//interval,调用时间间隔,如果为0,建议使用scheduleUpdate
//repeat,回调函数会被执行repeat+1次,kCCRepeatForever是无限次调用
//delay,第一次执行前的延时
void schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay);
void schedule(SEL_SCHEDULE selector, float interval);
void scheduleOnce(SEL_SCHEDULE selector, float delay);
void schedule(SEL_SCHEDULE selector);
//卸载自定义定时器
void unschedule(SEL_SCHEDULE selector);
void unscheduleAllSelectors(void);  //恢复所有定时器和动作,OnEnter调用
void resumeSchedulerAndActions(void);
//暂停所有定时器和动作,OnExit调用
void pauseSchedulerAndActions(void);  //scheduleUpdate每帧调用
virtual void update(float delta);

Demo:

自定义定时器

bool HelloWorld::init(){CCSize winSize = CCDirector::sharedDirector()->getWinSize();CCSprite *sprite = CCSprite::create("HelloWorld.png");sprite->setPosition(ccp(winSize.width/2, winSize.height/2));this->addChild(sprite);// 创建定时器CCDirector::sharedDirector()->getScheduler()->scheduleSelector(SEL_SCHEDULE(&HelloWorld::menuCloseCallback), this, 5.0, false);return true;
}// 被定时器调用的函数
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");
#elseCCDirector::sharedDirector()->end();#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)exit(0);#endif
#endif
}

更新定时器 scheduleUpdate

// HelloWorldScene.h
void update(float delate);// HelloWorldScene.cpp
bool HelloWorld::init(){CCSize winSize = CCDirector::sharedDirector()->getWinSize();CCSprite *sprite = CCSprite::create("HelloWorld.png");sprite->setPosition(ccp(winSize.width/2, winSize.height/2));this->addChild(sprite);// 开启定时器this->scheduleUpdate();return true;
}void HelloWorld::update(float delate){CCLog("%f", delate);
}

转载于:https://my.oschina.net/laoxieit/blog/228683

Cocos2d-x schedulers 定时器相关推荐

  1. python定时器库_Python定时器完整示例 python定时器用法举例

    例子,python定时器实例代码. 代码示例: ''' Created on 2012-10-11 @author: blh ''' import threading import time clas ...

  2. 如何制作一个简单的游戏 Cocos2d x 2 0 4

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...

  3. Cocos2D教程:使用SpriteBuilder和Cocos2D 3.x开发横版动作游戏——Part 2

    本文是"使用Cocos2D 3.x开发横版动作游戏"系列教程的第二篇,同时也是最后一篇.是对How To Make A Side-Scrolling Beat Em Up Game ...

  4. Cocos2D教程:使用SpriteBuilder和Cocos2D 3.x开发横版动作游戏——Part 1

    本文是对教程How To Make A Side-Scrolling Beat Em Up Game Like Scott Pilgrim with Cocos2D – Part 1的部分翻译,加上个 ...

  5. 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比(一家之言)

    初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 发布于:2013-07-18 11:00阅读数:1984 ...

  6. 图文并茂使用CocosBuilder制作Cocos2D游戏 分享0

    图文并茂使用CocosBuilder制作Cocos2D游戏  分享0 目 录 The Game 设置工程 创建动画类型的主界面 本文由Zynga 工程师原创,翻译:Iven,张作宸,Butterfly ...

  7. cocos2d 高仿doodle jump 无源代码

    1. 游戏视频 主角眼熟吗?没错,上次跑酷游戏中的"30"来Jump了,有三种道具.主角光环,竹蜻蜓.翅膀: 有两种怪物,螃蟹和鸟: 有5种板子.点击屏幕,30会把它的嘴巴3给发射 ...

  8. cocos2d 高仿doodle jump 无源码

    1. 游戏视频 主角眼熟吗?没错,上次跑酷游戏中的"30"来Jump了,有三种道具,主角光环,竹蜻蜓,翅膀: 有两种怪物,螃蟹和鸟: 有5种板子.点击屏幕,30会把它的嘴巴3给发射 ...

  9. flask 定时器警告

    项目场景: flask 定时器警告 问题描述: 警告内容如下: PytzUsageWarning: The normalize method is no longer necessary, as th ...

  10. Android 打飞机小游戏 cocos2d

    从cocos2d官网上下载合适的框架 导入自己的应用程序中. 1.CCDirector:导演类是游戏当中的组织者和领导者,负责调度游戏当中的一切对象和资源: Director是一个单例,在全部游戏中只 ...

最新文章

  1. python计算机_基础python计算机知识
  2. 天河二号 服务器 操作系统,天河二号云服务器
  3. Android --- Glide加载图片时候调用asBitmap()方法的时候总是报错,点不出来?
  4. leetcode 212. Word Search II | 212. 单词搜索 II(Trie,回溯,DFS)
  5. python中属于私有属性的是_Python中的实例属性和私有属性
  6. java foreach跳出本次循环_java控制流程最全示例
  7. jQuery文档加载完再执行
  8. Silabs Homekit开发--静态Pin码的产生和使用
  9. VSCode 过滤.meta 文件
  10. php公益培训,周日晚上听seo的课,yy88354001
  11. 微信开发安卓虚拟键盘挡住输入框的问题
  12. MODIS标准数据产品分级
  13. FFmpeg —— MP4转FLV(带关键帧)
  14. Armbian魔百盒折腾记3(傻妞 机器人 pushplus推送)
  15. Python第3章 流程控制
  16. 【2023年最新版】Kali安装详细教程
  17. 关于论文格式要求及字体大小
  18. 存储过程 debug
  19. java connect four_JAVA connectFour
  20. JavaScript实现无缝轮播图效果

热门文章

  1. memcache_engine-高性能分布式内存数据库
  2. 制作ext4 img的两种方式
  3. CFS任务的负载均衡(框架篇)
  4. cvAddWeighted 进行图片融合
  5. vc ctabctrl页面切换事件_10191025一周PE/VC事件回顾|猿辅导获得10亿美元G2轮融资
  6. 用cin解决有时输入两个,有时输三个变量
  7. 共轭梯度法(Conjugate gradient)详解
  8. spark User class threw exception: java.lang.NoSuchMethodError
  9. MarkDown 行首缩进
  10. java 权重_java的权重匹配算法技术?