上篇文章分析到了定时器的定义,这篇的重点就是定时器是如何运行起来的。
1.从main中寻找定时器的回调
讲定时器的运行,就不得不触及到cocos2dx的main函数了,因为定时器是主线程上运行的,并不是单独线程的,所以它的调用必然会在main函数中,每帧调用。
以下代码就是win32平台下的main函数
int APIENTRY _tWinMain(HINSTANCE hInstance,...
分类:
其他好文 时间:
2015-06-05 21:18:17
阅读次数:
140
Mitsuba中随处可见ref 和 scheduler先说说class ref, 它在include\mitsuba\core\ref.h中定义templateclass ref{public: /// Create a NULL reference ref() : m_ptr(NULL...
分类:
其他好文 时间:
2015-06-05 17:22:02
阅读次数:
117
1、Scheduler的配置
说明:Scheduler包含一个Trigger列表,每个Trigger表示一个作业。
2、Trigger的配置
说明:
1)Cron表达...
分类:
编程语言 时间:
2015-06-05 15:53:37
阅读次数:
157
Quartz 提供了三种类型的监听器:监听 Job 的,监听 Trigger 的,和监听 Scheduler 自已的。本章解释如何应用每一种类型来更好的管理你的 Quartz 应用,并获悉到什么事件正在发生。,实现监听器的方法通用于所有的三种类型。可以分成以下步骤:1.创建一个 Java 类,实现监...
分类:
其他好文 时间:
2015-06-04 19:23:23
阅读次数:
126
org.quartz.Scheduler类层次作为一个 Quartz 用户,你要与实现了org.quartz.Scheduler接口的类交互。在你调用它的任何 API 之前,你需要知道如何创建一个 Scheduler 的实例。取而代之的是用了某个工厂方法来确保了构造出 Sheduler 实例并正确的...
分类:
其他好文 时间:
2015-06-04 19:23:22
阅读次数:
116
顾名思义,Trigger(触发器)的责任就是触发一个 Job 去执行。当用 Scheduler 注册一个 Job 的时候要创建一个 Trigger 与这个 Job 相关联。Quartz 提供了四种类型的 Trigger,但其中两种是最为常用的,分别是下面的两种:SimpleTrigger和CronT...
分类:
其他好文 时间:
2015-06-04 19:17:42
阅读次数:
133
以下是我在应用的的一个基本配置:#---------调度器属性----------------org.quartz.scheduler.instanceName = TestSchedulerorg.quartz.scheduler.instanceId = one#---------线程配置---...
分类:
编程语言 时间:
2015-06-04 19:17:25
阅读次数:
226
上篇说到定时器的使用方法,这篇主要分析它的实现原理。
1.哈希链表
cocos2dx封装了一个结构体,叫做UT_hash_handle,只要在自定义的结构体中声明这个结构体变量,就实现了哈希链表,并且能使用一系列的哈希链表专用的宏。这个结构体的具体实现如下:
typedef struct UT_hash_handle {
struct UT_hash_table *tbl;
vo...
分类:
其他好文 时间:
2015-06-04 13:50:31
阅读次数:
296
注:本文开始,引擎升级到cocos2dx 3.6
在游戏开发过程中,经常会遇到使用计时器的情况,例如:倒计时,定时炸弹等。scheduler是cocos2dx 2.x时代就已经存在的产物,主要用于各种延时函数以及各种每帧运行的函数。本文主要介绍scheduler的API函数以及使用方法。
首先,所有继承Node的类都可以使用scheduler,以下是Node类下相关API的介绍
/*...
分类:
其他好文 时间:
2015-06-02 15:24:13
阅读次数:
112
今天做了一个萤火虫飞舞效果,这个问题类似于一道算法题:一个点想移动到平面上任意一点,但是自身有一个旋转角度限制,每一次旋转时,最大旋转角度是 maxRotateAngle,思维延时(即两次连续执行自身指令的间隔)是 float gap。大致思路是:建立了四个指令,分别是:Blink()—— 萤火虫屁...
分类:
编程语言 时间:
2015-05-30 07:03:26
阅读次数:
205