Cocos2d-x Schedule定时器的使用实例

schedule可以实现定时器的功能,就是每隔一段时间做什么事情,schedule的调用者是节点,所有的节点都可以调用schedule函数,参数需要传入一个函数(schedule_selector一个新的选择器),在函数中可以完成碰撞检测等功能。下面就具体来看看这个函数的用法吧。

bool HelloWorld::init()
{
  bool bRet = false;
  do
  {

    CC_BREAK_IF(! CCLayer::init());

		//schedule传入一个参数的时候每一帧都会调用show函数
		//this->schedule(schedule_selector(HelloWorld::show));
		//以下的schedule方法中,传入的第二个参数是时间,代表多长时间调用一次show函数
		//this->schedule(schedule_selector(HelloWorld::show),1.0);
		//schedule方法中的前俩个参数和上边的相同,第三个参数是方法调用的重复次数,重复俩次加刚开始的一次
		//总共调用了三次,3.0代表执行下边的语句后多长时间开始调用函数show,就是delay的时间
		//this->schedule(schedule_selector(HelloWorld::show),1.0,2,3.0);
		//scheduleUpdate每隔一帧都会调用update方法,需要我们声明一下update方法
		this->scheduleUpdate();

    bRet = true;
  } while (0);

  return bRet;
}

void HelloWorld::update(float dt)
{
	static int i = 0;
	if(i == 100)
	{
		//下次不再调用update方法,但是CCLog函数还是会执行的。
		//this->unscheduleUpdate();
		//以下函数实现相同的功能,它会将这个层的所以schedule方法都停止调用
		this->unscheduleAllSelectors();
	}
	CCLog("i = %d",++i);
}

//show函数必须含有一个float类型的参数
void HelloWorld::show(float dt)
{
	static int i = 0;
	CCLog("time = %d",++i);
	if(i == 10)
	{
		//unschedule停止传入的参数代表的方法调用
		//以下代码不一定需要写在这个show方法中
		this->unschedule(schedule_selector(HelloWorld::show));
	}
}
(0)

相关推荐

  • Android使用CountDownTimer实现倒数定时器效果

    实现倒计时的效果 例子:发送验证码按钮 效果图: /** * 倒计时 * * @author admin * */ public class MainActivity extends ActionBarActivity { private Button tvTime;// 显示时间 private MyCountDownTimer myCountDownTimer;// 倒计时对象 @Override protected void onCreate(Bundle savedInstanceSta

  • 详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用

    项目比较大有时候会比较卡,虽然有GC自动清理机制,但是还是有不尽人意的地方.所以尝试在项目启动文件中,手动写了一个定时器,定时清理内存,加快项目运行速度. public class Program { [DllImport("psapi.dll")] static extern int EmptyWorkingSet(IntPtr hwProc); //清理内存相关 static void Main() { //启动定时清理内存 SetTimer(); } /// <summar

  • linux使用select实现精确定时器详解

    在编写程序时,我们经常会用到定时器.首先看看select函数原型如下: 复制代码 代码如下: int select(int nfds, fd_set *readfds, fd_set *writefds,                  fd_set *exceptfds, struct timeval *timeout); 参数说明:slect的第一个参数nfds为fdset集合中最大描述符值加1,fdset是一个位数组,其大小限制为__FD_SETSIZE(1024),位数组的每一位代表其

  • Swift3.0 GCD定时器的使用DEMO

    直接看主要代码 //截止日期 let endDate = datePicker.date //开始日期 let startDate = Date() //时间间隔 let timeInterval:TimeInterval = endDate.timeIntervalSince(startDate) if timer == nil { //剩余时间 var timeout = timeInterval if timeout != 0 { //创建全局队列 let queue = Dispatch

  • Cocos2d-x Schedule定时器的使用实例

    schedule可以实现定时器的功能,就是每隔一段时间做什么事情,schedule的调用者是节点,所有的节点都可以调用schedule函数,参数需要传入一个函数(schedule_selector一个新的选择器),在函数中可以完成碰撞检测等功能.下面就具体来看看这个函数的用法吧. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //schedule传入一个参数的时候每一帧都会调用s

  • jQuery基础的工厂函数以及定时器的经典实例分析

    1. jQuery的基本信息: 1.1 定义: jQuery是JavaScript的程序库之一,它是JavaScript对象和实用函数的封装, 1.2 作用: 许多使用JavaScript能实现的交互特效,使用jQuery都能完美地实现,下面通过五个用途来更多的了解. 1.2.1 访问和操作DOM元素 1.2.2 制作页面样式 1.2.3 对页面时间的处理 1.2.4 方便地使用jQuery插件 1.2.5 与Ajax的完美结合 1.3 优势: 想必有人就会问了:为什么人们会更多的选择jQuer

  • VC定时器的用法实例详解

    本文实例讲述了VC中定时器的用法,分享给大家供大家参考.具体用法分析如下: 定时器在VC中的使用频繁,其原型为: 复制代码 代码如下: WINUSERAPI UINT WINAPI SetTimer ( HWND hWnd , UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc); 其中的参数用法如下: hWnd       是欲设置定时器的窗体句柄.定时时间到时,系统会向该窗体发送WM_TIMER消息. nIDEvent     定时器标识符.

  • JavaScript定时器常见用法实例分析

    本文实例讲述了JavaScript定时器常见用法.分享给大家供大家参考,具体如下: 定时器 定时器在javascript中的作用 1.制作动画 2.异步操作 3.函数缓冲与节流 定时器类型及语法 /* 定时器: setTimeout 只执行一次的定时器 clearTimeout 关闭只执行一次的定时器 setInterval 反复执行的定时器 clearInterval 关闭反复执行的定时器 */ var time1 = setTimeout(myalert,2000); var time2 =

  • Javaweb 定时器功能代码实例

    在Java的6.0版本中新增了concurrent包,这个包是用作线程同步的包,提供了很多工具类. 其中定时器就是其中之一.近期在做一个项目,在项目中要实现启动Web服务的同时启动一个任务,要求此任务为守护进程,定时调用一些任务操作代码.在网上搜索相关的实现,综合考虑得出一个解决方案.方案是:使用tomcat服务器的监听器类作守护进程,调用concurrent包提供的定时器,最后在定时器中调用操作实现代码.具体实现类Translator在这里不再给出,将其替换为自己需要的实现类即可. 1.任务类

  • js定时器的使用(实例讲解)

    在javascritp中,有两个关于定时器的专用函数,分别为: 1.倒计定时器:timename=setTimeout("function();",delaytime);2.循环定时器:timename=setInterval("function();",delaytime); 第一个参数"function()"是定时器触发时要执行的动作,可以是一个函数,也可以是几个函数,函数间用":"隔开即可.比如要弹出两个警告窗口,便可将

  • libevent库的使用--定时器的使用实例

    复制代码 代码如下: #include <sys/types.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/stat.h>#include <event.h>#include <evhttp.h> #define RELOAD_TIMEOUT 5#define DEFAULT_

  • js定时器实例分享

    1. 设置定时器 语法:setInterval(函数,时间) 注意: 函数书写时不能带括号 setInterval(fn,1000)//正确 setInterval(fn(),1000)//错误 时间的最小设置不小于14ms 2. 清除定时器 语法:clearInterval(所清除的定时器名称) 3. 实例探究 js部分 window.onload = function() { var timer = null; var num = 0; var i = 0; var arr=['red','

  • C++控制台用定时器实例代码

    本文研究的主要是C++控制台用定时器的相关实例,具体如下. Timer在MFC程序中的使用 在MFC中有一个很好用的定时器函数. 使用SetTimer()进行设置定时器 使用KillTimer()关闭定时器 在OnTimer()函数中,响应WM_TIMER这个消息,也就是定时器的处理函数. 源代码 #define TIMER_UDP_QFX 3//定时器的ID int Period = 1000;//1000ms的定时器 //设置一个定时器 SetTimer(TIMER_UDP_QFX, Per

  • BOM系列第一篇之定时器setTimeout和setInterval

    setTimeout() setTimeout()方法用来指定某个函数或字符串在指定的毫秒数之后执行.它返回一个整数,表示定时器的编号,这个值可以传递给clearTimeout()用于取消这个函数的执行 以下代码中,控制台先输出0,大概过1000ms即1s后,输出定时器setTimeout()方法的返回值1 var Timer = setTimeout(function(){ console.log(Timer); },1000); console.log(0); 也可以写成字符串参数的形式,由

随机推荐