cocos2dx定时器

cocos2dx三种定时器的使用以及停止schedule,scheduleUpdate,scheduleOnce
首先,什么是定时器呢?或许你有时候会想让某个函数不断的去执行,或许只是执行一次,获取你想让他每隔几秒执行一次

cocos2dx中有三种定时器: scheduleUpdate,schedule,scheduleOnce。

1scheduleUpdate

加入当前节点后,程序会每帧都会自动执行一次默认的Update函数。(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schedule)

首先在HelloWord类的头文件中声明Update函数:

void Update(float dt);   //注意参数类型

然后在HelloWorld类源文件中实现函数Update:

void HelloWorld::Update(float dt)

{

CCLOG("baibai");

}

现在我们可以调用了,在需要他不断执行的地方加入调用的代码就ok:

this->scheduleUpdate();    
//this是当前节点,如layer。

运行之后你将会看到不断有baibai被打印出来

2schedule

可以没隔几秒执行某个自定义的函数,来看代码:

首先还是在HelloWorld中声明所要执行的函数:

void Move(float dt);

然后在源文件实现:

void HelloWorld::Move(float dt)

{

CCLOG("baibai");

}

现在去执行他,注意参数哦

this->schedule(schedule_selector(HelloWorld::Move),
1.0f); //每隔1.0f执行一次,省略参数则表示每帧都要执行

运行之后,baibai每隔1.0f才会被打印一次。

3scheduleOnce

功能:在几秒之后执行,并且只执行一次。

我们就执行上面所写过的Move函数吧:

this->scheduleOnce(schedule_selector(HelloWorld::Move),
1.0f); //在1.0f之后执行,并且只执行一次。

运行一下,baibai只是被打印了一次就完了。。。

ok,定时器的调用已经讲完,大家不妨自己写一些函数体验一下。

但是怎么让定时器停止呢?

1、停止执行自己定义函数的定时器:

this->unschedule(schedule_selector(HelloWorld::Move));

2、停止默认定时器:

this->unscheduleUpdate();

3、停止所有定时器:

this->unscheduleAllSelectors();

cocos2dx定时器

时间: 2024-10-12 12:21:39

cocos2dx定时器的相关文章

cocos2dx定时器事件

利用场景.层和精灵等游戏元素,我们可以构建游戏的框架,但是此时的游戏仍然是静止不动的.在一切游戏中,游戏的 状态都会随着时间的流逝而改变,同时我们还需要定时进行一些逻辑判断,例如鱼和子弹的碰撞检测.为了解决以上问题, 我们引入了定时器的概念.定时器是以一定时间间隔连续引发游戏事件的工具.很显然,定时器就是使游戏动态变化所需 的工具.Cocos2d-x 为我们提供了两种方式实现定时机制--使用 update 方法以及使用 schedule 方法,下面简要介绍这两种 方式. update定时器 第一

cocos2dx定时器scheduleUpdate研究

直接发源代码 #include <iostream> #include <windows.h> using namespace std; class Ref { protected: Ref(){isLoop = false;} virtual void update(){cout<< "super loop" << endl;} bool isLoop; public: void unScheduleUpdate(){isLoop = 

Cocos2d视频教程收录

锋手游开发培训-Cocos2D-X-视频教程合集  (    )   1   千锋Cocos2D-X游戏视频教程-第01讲-Cocos2D-X介绍 2   千锋Cocos2D-X游戏视频教程-第02讲-Cocos2D-X游戏安装过程和创建项目 3   千锋Cocos2D-X游戏视频教程-第03讲-Cocos2D-X启动流程-OC部分 4   千锋Cocos2D-X游戏视频教程-第04讲-Cocos2D-X启动流程-EAGLView解释 5   千锋Cocos2D-X游戏视频教程-第05讲-Coc

关于Cocos2d-x中定时器的使用总结

1.定义 定时器在大部分游戏中是不可或缺的,即每隔一段时间,就要执行相应的刷新体函数,以更新游戏的画面.时间.进度.敌人的指令等等. cocos2dx为我们提供了定时器schedule相关的操作.其操作函数的定义在CCNode中,所以基本上大多数的引擎类都可以设置定时器,如CCLayer.CCSprite.CCMenu等. 2.种类 定时器更新的方式分为三类: (1)默认定时器  :scheduleUpdate(); (2)自定义定时器:schedule(); (3)一次性定时器:schedul

【深入了解cocos2d-x 3.x】定时器(scheduler)的使用和原理探究(3)

上篇文章分析到了定时器的定义,这篇的重点就是定时器是如何运行起来的. 1.从main中寻找定时器的回调 讲定时器的运行,就不得不触及到cocos2dx的main函数了,因为定时器是主线程上运行的,并不是单独线程的,所以它的调用必然会在main函数中,每帧调用. 以下代码就是win32平台下的main函数 int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdSh

cocos2dx三种定时器的使用

 cocos2dx三种定时器的使用以及停止schedule,scheduleUpdate,scheduleOnce 今天白白跟大家分享一下cocos2dx中定时器的使用方法. 首先,什么是定时器呢?或许你有时候会想让某个函数不断的去执行,或许只是执行一次,获取你想让他每隔几秒执行一次,ok,这些都可以统统交给定时器来解决. cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce.了解其功能便会发现定时器真是太方便了,废话不多说,我们逐一学习一

cocos2dx三种定时器使用

 cocos2dx三种定时器的使用以及停止schedule.scheduleUpdate.scheduleOnce 今天白白跟大家分享一下cocos2dx中定时器的用法. 首先,什么是定时器呢?也许你有时候会想让某个函数不断的去运行.也许仅仅是运行一次,获取你想让他每隔几秒运行一次.ok.这些都能够统统交给定时器来解决. cocos2dx中有三种定时器:schedule,scheduleUpdate.scheduleOnce.了解其功能便会发现定时器真是太方便了,废话不多说,我们逐一学习一下

cocos2dx中的定时器及其分类

cocos2dx中的定时器分三大类: 1.帧循环定时器 2.一次性定时器 3.自定义定时器 一.帧循环定时器,顾名思义,每一帧都会执行一次,用于实时性要求比较高的场合,如碰撞检测 void scheduleUpdate(void);//其实是schedule+Update的组合,即定时执行Update函数的意思 --------启动定时器 virtual void update(float delta);//这是需要自己实现的虚函数,我们重载(override),update方法以执行我们自己的

Cocos2d-x学习笔记(六) 定时器Schedule的简单应用

 Cocos2d-x中的定时器使用非常easy,共同拥有3种:schedule.scheduleUpdate和scheduleOnce.简介一下三种的差别: schedule,每隔指定时间运行某个自己定义的函数 schedule(schedule_selector(自己定义函数名),间隔时间); scheduleUpdate,每帧运行一次Update函数(仅仅能是以Update命名的函数,须要调用其它函数则使用schedule) scheduleOnce,在指定时间后运行某个自己定义函数,且