Cocos2d-x schedulers 定时器
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 定时器相关推荐
- python定时器库_Python定时器完整示例 python定时器用法举例
例子,python定时器实例代码. 代码示例: ''' Created on 2012-10-11 @author: blh ''' import threading import time clas ...
- 如何制作一个简单的游戏 Cocos2d x 2 0 4
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...
- Cocos2D教程:使用SpriteBuilder和Cocos2D 3.x开发横版动作游戏——Part 2
本文是"使用Cocos2D 3.x开发横版动作游戏"系列教程的第二篇,同时也是最后一篇.是对How To Make A Side-Scrolling Beat Em Up Game ...
- Cocos2D教程:使用SpriteBuilder和Cocos2D 3.x开发横版动作游戏——Part 1
本文是对教程How To Make A Side-Scrolling Beat Em Up Game Like Scott Pilgrim with Cocos2D – Part 1的部分翻译,加上个 ...
- 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比(一家之言)
初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 发布于:2013-07-18 11:00阅读数:1984 ...
- 图文并茂使用CocosBuilder制作Cocos2D游戏 分享0
图文并茂使用CocosBuilder制作Cocos2D游戏 分享0 目 录 The Game 设置工程 创建动画类型的主界面 本文由Zynga 工程师原创,翻译:Iven,张作宸,Butterfly ...
- cocos2d 高仿doodle jump 无源代码
1. 游戏视频 主角眼熟吗?没错,上次跑酷游戏中的"30"来Jump了,有三种道具.主角光环,竹蜻蜓.翅膀: 有两种怪物,螃蟹和鸟: 有5种板子.点击屏幕,30会把它的嘴巴3给发射 ...
- cocos2d 高仿doodle jump 无源码
1. 游戏视频 主角眼熟吗?没错,上次跑酷游戏中的"30"来Jump了,有三种道具,主角光环,竹蜻蜓,翅膀: 有两种怪物,螃蟹和鸟: 有5种板子.点击屏幕,30会把它的嘴巴3给发射 ...
- flask 定时器警告
项目场景: flask 定时器警告 问题描述: 警告内容如下: PytzUsageWarning: The normalize method is no longer necessary, as th ...
- Android 打飞机小游戏 cocos2d
从cocos2d官网上下载合适的框架 导入自己的应用程序中. 1.CCDirector:导演类是游戏当中的组织者和领导者,负责调度游戏当中的一切对象和资源: Director是一个单例,在全部游戏中只 ...
最新文章
- python计算机_基础python计算机知识
- 天河二号 服务器 操作系统,天河二号云服务器
- Android --- Glide加载图片时候调用asBitmap()方法的时候总是报错,点不出来?
- leetcode 212. Word Search II | 212. 单词搜索 II(Trie,回溯,DFS)
- python中属于私有属性的是_Python中的实例属性和私有属性
- java foreach跳出本次循环_java控制流程最全示例
- jQuery文档加载完再执行
- Silabs Homekit开发--静态Pin码的产生和使用
- VSCode 过滤.meta 文件
- php公益培训,周日晚上听seo的课,yy88354001
- 微信开发安卓虚拟键盘挡住输入框的问题
- MODIS标准数据产品分级
- FFmpeg —— MP4转FLV(带关键帧)
- Armbian魔百盒折腾记3(傻妞 机器人 pushplus推送)
- Python第3章 流程控制
- 【2023年最新版】Kali安装详细教程
- 关于论文格式要求及字体大小
- 存储过程 debug
- java connect four_JAVA connectFour
- JavaScript实现无缝轮播图效果
热门文章
- memcache_engine-高性能分布式内存数据库
- 制作ext4 img的两种方式
- CFS任务的负载均衡(框架篇)
- cvAddWeighted 进行图片融合
- vc ctabctrl页面切换事件_10191025一周PE/VC事件回顾|猿辅导获得10亿美元G2轮融资
- 用cin解决有时输入两个,有时输三个变量
- 共轭梯度法(Conjugate gradient)详解
- spark User class threw exception: java.lang.NoSuchMethodError
- MarkDown 行首缩进
- java 权重_java的权重匹配算法技术?