cocos2d-x  3.0alpha1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Scheduler Class Reference

Scheduler is responsible for triggering the scheduled callbacks. More...

#include <CCScheduler.h>

Inheritance diagram for Scheduler:
Object

Public Member Functions

 Scheduler ()
 ~Scheduler (void)
float getTimeScale ()
void setTimeScale (float timeScale)
 Modifies the time of all scheduled callbacks. More...
 
void update (float dt)
 'update' the scheduler. More...
 
void scheduleSelector (SEL_SCHEDULE selector, Object *target, float interval, unsigned int repeat, float delay, bool paused)
 The scheduled method will be called every 'interval' seconds. More...
 
void scheduleSelector (SEL_SCHEDULE selector, Object *target, float interval, bool paused)
 calls scheduleSelector with kRepeatForever and a 0 delay More...
 
void scheduleUpdateForTarget (Object *target, int priority, bool paused)
 Schedules the 'update' selector for a given target with a given priority. More...
 
bool isScheduledForTarget (SEL_SCHEDULE selector, Object *target)
 Checks whether a selector for a given taget is scheduled. More...
 
void unscheduleSelector (SEL_SCHEDULE selector, Object *target)
 Unschedule a selector for a given target. More...
 
void unscheduleUpdateForTarget (const Object *target)
 Unschedules the update selector for a given target. More...
 
void unscheduleAllForTarget (Object *target)
 Unschedules all selectors for a given target. More...
 
void unscheduleAll (void)
 Unschedules all selectors from all targets. More...
 
void unscheduleAllWithMinPriority (int minPriority)
 Unschedules all selectors from all targets with a minimum priority. More...
 
unsigned int scheduleScriptFunc (unsigned int handler, float interval, bool paused)
 The scheduled script callback will be called every 'interval' seconds. More...
 
void unscheduleScriptEntry (unsigned int scheduleScriptEntryID)
 Unschedule a script entry. More...
 
void pauseTarget (Object *target)
 Pauses the target. More...
 
void resumeTarget (Object *target)
 Resumes the target. More...
 
bool isTargetPaused (Object *target)
 Returns whether or not the target is paused. More...
 
SetpauseAllTargets ()
 Pause all selectors from all targets. More...
 
SetpauseAllTargetsWithMinPriority (int minPriority)
 Pause all selectors from all targets with a minimum priority. More...
 
void resumeTargets (Set *targetsToResume)
 Resume selectors on a set of targets. More...
 
- Public Member Functions inherited from Object
 Object ()
 Constructor. More...
 
virtual ~Object ()
void release ()
 Release the ownership immediately. More...
 
void retain ()
 Retains the ownership. More...
 
Objectautorelease ()
 Release the ownership sometime soon automatically. More...
 
bool isSingleReference () const
 Returns a boolean value that indicates whether there is only one reference to the object. More...
 
unsigned int retainCount () const
 Returns the object's current reference count. More...
 
virtual bool isEqual (const Object *object)
 Returns a boolean value that indicates whether this object and a given object are equal. More...
 
virtual void acceptVisitor (DataVisitor &visitor)

Static Public Attributes

static const int PRIORITY_SYSTEM
static const int PRIORITY_NON_SYSTEM_MIN

Protected Attributes

float _timeScale
struct _listEntry * _updatesNegList
struct _listEntry * _updates0List
struct _listEntry * _updatesPosList
struct _hashUpdateEntry * _hashForUpdates
struct _hashSelectorEntry * _hashForTimers
struct _hashSelectorEntry * _currentTarget
bool _currentTargetSalvaged
bool _updateHashLocked
Array_scriptHandlerEntries
- Protected Attributes inherited from Object
unsigned int _reference
 count of references More...
 
unsigned int _autoReleaseCount
 count of autorelease More...
 

Additional Inherited Members

- Public Attributes inherited from Object
unsigned int _ID
 object id, ScriptSupport need public _ID More...
 
int _luaID
 Lua reference id. More...
 

Detailed Description

Scheduler is responsible for triggering the scheduled callbacks.

You should not use NSTimer. Instead use this class.

There are 2 different types of callbacks (selectors):

  • update selector: the 'update' selector will be called every frame. You can customize the priority.
  • custom selector: A custom selector will be called every frame, or with a custom interval of time

The 'custom selectors' should be avoided when possible. It is faster, and consumes less memory to use the 'update selector'.

Constructor & Destructor Documentation

Scheduler ( )
~Scheduler ( void  )

Member Function Documentation

float getTimeScale ( )
inline
bool isScheduledForTarget ( SEL_SCHEDULE  selector,
Object target 
)

Checks whether a selector for a given taget is scheduled.

Since
v3.0.0
bool isTargetPaused ( Object target)

Returns whether or not the target is paused.

Since
v1.0.0 In js: var isTargetPaused(var jsObject)
Set* pauseAllTargets ( )

Pause all selectors from all targets.

You should NEVER call this method, unless you know what you are doing.

Since
v2.0.0
Set* pauseAllTargetsWithMinPriority ( int  minPriority)

Pause all selectors from all targets with a minimum priority.

You should only call this with kPriorityNonSystemMin or higher.

Since
v2.0.0
void pauseTarget ( Object target)

Pauses the target.

All scheduled selectors/update for a given target won't be 'ticked' until the target is resumed. If the target is not present, nothing happens.

Since
v0.99.3
void resumeTarget ( Object target)

Resumes the target.

The 'target' will be unpaused, so all schedule selectors/update will be 'ticked' again. If the target is not present, nothing happens.

Since
v0.99.3
void resumeTargets ( Set targetsToResume)

Resume selectors on a set of targets.

This can be useful for undoing a call to pauseAllSelectors.

Since
v2.0.0
unsigned int scheduleScriptFunc ( unsigned int  handler,
float  interval,
bool  paused 
)

The scheduled script callback will be called every 'interval' seconds.

If paused is true, then it won't be called until it is resumed. If 'interval' is 0, it will be called every frame. return schedule script entry ID, used for unscheduleScriptFunc().

void scheduleSelector ( SEL_SCHEDULE  selector,
Object target,
float  interval,
unsigned int  repeat,
float  delay,
bool  paused 
)

The scheduled method will be called every 'interval' seconds.

If paused is true, then it won't be called until it is resumed. If 'interval' is 0, it will be called every frame, but if so, it's recommended to use 'scheduleUpdateForTarget:' instead. If the selector is already scheduled, then only the interval parameter will be updated without re-scheduling it again. repeat let the action be repeated repeat + 1 times, use kRepeatForever to let the action run continuously delay is the amount of time the action will wait before it'll start

Since
v0.99.3, repeat and delay added in v1.1
void scheduleSelector ( SEL_SCHEDULE  selector,
Object target,
float  interval,
bool  paused 
)

calls scheduleSelector with kRepeatForever and a 0 delay

void scheduleUpdateForTarget ( Object target,
int  priority,
bool  paused 
)

Schedules the 'update' selector for a given target with a given priority.

The 'update' selector will be called every frame. The lower the priority, the earlier it is called.

Since
v0.99.3
void setTimeScale ( float  timeScale)
inline

Modifies the time of all scheduled callbacks.

You can use this property to create a 'slow motion' or 'fast forward' effect. Default is 1.0. To create a 'slow motion' effect, use values below 1.0. To create a 'fast forward' effect, use values higher than 1.0.

Since
v0.8
Warning
It will affect EVERY scheduled selector / action.
void unscheduleAll ( void  )

Unschedules all selectors from all targets.

You should NEVER call this method, unless you know what you are doing.

Since
v0.99.3
void unscheduleAllForTarget ( Object target)

Unschedules all selectors for a given target.

This also includes the "update" selector.

Since
v0.99.3
void unscheduleAllWithMinPriority ( int  minPriority)

Unschedules all selectors from all targets with a minimum priority.

You should only call this with kPriorityNonSystemMin or higher.

Since
v2.0.0
void unscheduleScriptEntry ( unsigned int  scheduleScriptEntryID)

Unschedule a script entry.

void unscheduleSelector ( SEL_SCHEDULE  selector,
Object target 
)

Unschedule a selector for a given target.

If you want to unschedule the "update", use unscheudleUpdateForTarget.

Since
v0.99.3
void unscheduleUpdateForTarget ( const Object target)

Unschedules the update selector for a given target.

Since
v0.99.3
void update ( float  dt)
virtual

'update' the scheduler.

You should NEVER call this method, unless you know what you are doing.

Reimplemented from Object.

Member Data Documentation

struct _hashSelectorEntry*
_currentTarget
protected
bool _currentTargetSalvaged
protected
struct _hashSelectorEntry*
_hashForTimers
protected
struct _hashUpdateEntry*
_hashForUpdates
protected
Array* _scriptHandlerEntries
protected
float _timeScale
protected
bool _updateHashLocked
protected
struct _listEntry* _updates0List
protected
struct _listEntry* _updatesNegList
protected
struct _listEntry* _updatesPosList
protected
const int PRIORITY_NON_SYSTEM_MIN
static
const int PRIORITY_SYSTEM
static

The documentation for this class was generated from the following file: