cocos2d-x
3.3
|
Scheduler is responsible for triggering the scheduled callbacks. More...
#include <CCScheduler.h>
Public Member Functions | |
Scheduler () | |
ctor More... | |
virtual | ~Scheduler () |
NA NA More... | |
float | getTimeScale () |
void | setTimeScale (float timeScale) |
Modifies the time of all scheduled callbacks. More... | |
void | update (float dt) |
'update' the scheduler. More... | |
void | schedule (const ccSchedulerFunc &callback, void *target, float interval, unsigned int repeat, float delay, bool paused, const std::string &key) |
The scheduled method will be called every 'interval' seconds. More... | |
void | schedule (const ccSchedulerFunc &callback, void *target, float interval, bool paused, const std::string &key) |
Calls scheduleCallback with CC_REPEAT_FOREVER and a 0 delay. More... | |
void | schedule (SEL_SCHEDULE selector, Ref *target, float interval, unsigned int repeat, float delay, bool paused) |
The scheduled method will be called every 'interval' seconds. More... | |
void | schedule (SEL_SCHEDULE selector, Ref *target, float interval, bool paused) |
calls scheduleSelector with CC_REPEAT_FOREVER and a 0 delay More... | |
template<class T > | |
void | scheduleUpdate (T *target, int priority, bool paused) |
Schedules the 'update' selector for a given target with a given priority. More... | |
void | unschedule (const std::string &key, void *target) |
Unschedules a callback for a key and a given target. More... | |
void | unschedule (SEL_SCHEDULE selector, Ref *target) |
Unschedule a selector for a given target. More... | |
void | unscheduleUpdate (void *target) |
Unschedules the update selector for a given target. More... | |
void | unscheduleAllForTarget (void *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... | |
bool | isScheduled (const std::string &key, void *target) |
Checks whether a callback associated with 'key' and 'target' is scheduled. More... | |
bool | isScheduled (SEL_SCHEDULE selector, Ref *target) |
Checks whether a selector for a given taget is scheduled. More... | |
void | pauseTarget (void *target) |
Pauses the target. More... | |
void | resumeTarget (void *target) |
Resumes the target. More... | |
bool | isTargetPaused (void *target) |
Returns whether or not the target is paused. More... | |
std::set< void * > | pauseAllTargets () |
Pause all selectors from all targets. More... | |
std::set< void * > | pauseAllTargetsWithMinPriority (int minPriority) |
Pause all selectors from all targets with a minimum priority. More... | |
void | resumeTargets (const std::set< void * > &targetsToResume) |
Resume selectors on a set of targets. More... | |
void | performFunctionInCocosThread (const std::function< void()> &function) |
calls a function on the cocos2d thread. More... | |
void | scheduleSelector (SEL_SCHEDULE selector, Ref *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, Ref *target, float interval, bool paused) |
calls scheduleSelector with CC_REPEAT_FOREVER and a 0 delay More... | |
template<class T > | |
void | scheduleUpdateForTarget (T *target, int priority, bool paused) |
Schedules the 'update' selector for a given target with a given priority. More... | |
void | unscheduleSelector (SEL_SCHEDULE selector, Ref *target) |
Unschedule a selector for a given target. More... | |
bool | isScheduledForTarget (Ref *target, SEL_SCHEDULE selector) |
Checks whether a selector for a given taget is scheduled. More... | |
void | unscheduleUpdateForTarget (Ref *target) |
Unschedules the update selector for a given target. More... | |
![]() | |
void | retain () |
Retains the ownership. More... | |
void | release () |
Releases the ownership immediately. More... | |
Ref * | autorelease () |
Releases the ownership sometime soon automatically. More... | |
unsigned int | getReferenceCount () const |
Returns the Ref's current reference count. More... | |
virtual | ~Ref () |
NA NA More... | |
Static Public Attributes | |
static const int | PRIORITY_SYSTEM |
static const int | PRIORITY_NON_SYSTEM_MIN |
Protected Member Functions | |
void | schedulePerFrame (const ccSchedulerFunc &callback, void *target, int priority, bool paused) |
Schedules the 'callback' function for a given target with a given priority. More... | |
void | removeHashElement (struct _hashSelectorEntry *element) |
void | removeUpdateFromHash (struct _listEntry *entry) |
void | priorityIn (struct _listEntry **list, const ccSchedulerFunc &callback, void *target, int priority, bool paused) |
void | appendIn (struct _listEntry **list, const ccSchedulerFunc &callback, void *target, bool paused) |
![]() | |
Ref () | |
Constructor. More... | |
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 |
std::vector< std::function < void()> > | _functionsToPerform |
std::mutex | _performMutex |
![]() | |
unsigned int | _referenceCount |
count of references More... | |
Scheduler is responsible for triggering the scheduled callbacks.
You should not use system timer for your game logic. Instead, use this class.
There are 2 different types of callbacks (selectors):
The 'custom selectors' should be avoided when possible. It is faster, and consumes less memory to use the 'update selector'.
Scheduler | ( | ) |
ctor
|
virtual |
NA NA
|
protected |
|
inline |
bool isScheduled | ( | const std::string & | key, |
void * | target | ||
) |
Checks whether a callback associated with 'key' and 'target' is scheduled.
bool isScheduled | ( | SEL_SCHEDULE | selector, |
Ref * | target | ||
) |
Checks whether a selector for a given taget is scheduled.
|
inline |
Checks whether a selector for a given taget is scheduled.
bool isTargetPaused | ( | void * | target | ) |
Returns whether or not the target is paused.
std::set<void*> pauseAllTargets | ( | ) |
Pause all selectors from all targets.
You should NEVER call this method, unless you know what you are doing.
std::set<void*> pauseAllTargetsWithMinPriority | ( | int | minPriority | ) |
Pause all selectors from all targets with a minimum priority.
You should only call this with kPriorityNonSystemMin or higher.
void pauseTarget | ( | void * | 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.
void performFunctionInCocosThread | ( | const std::function< void()> & | function | ) |
|
protected |
|
protected |
|
protected |
void resumeTarget | ( | void * | 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.
void resumeTargets | ( | const std::set< void * > & | targetsToResume | ) |
Resume selectors on a set of targets.
This can be useful for undoing a call to pauseAllSelectors.
void schedule | ( | const ccSchedulerFunc & | callback, |
void * | target, | ||
float | interval, | ||
unsigned int | repeat, | ||
float | delay, | ||
bool | paused, | ||
const std::string & | key | ||
) |
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 'scheduleUpdate' instead. If the 'callback' 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 CC_REPEAT_FOREVER to let the action run continuously delay is the amount of time the action will wait before it'll start
key | The key to identify the callback |
void schedule | ( | const ccSchedulerFunc & | callback, |
void * | target, | ||
float | interval, | ||
bool | paused, | ||
const std::string & | key | ||
) |
Calls scheduleCallback with CC_REPEAT_FOREVER and a 0 delay.
void schedule | ( | SEL_SCHEDULE | selector, |
Ref * | 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 'scheduleUpdate' 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 CC_REPEAT_FOREVER to let the action run continuously delay is the amount of time the action will wait before it'll start
void schedule | ( | SEL_SCHEDULE | selector, |
Ref * | target, | ||
float | interval, | ||
bool | paused | ||
) |
calls scheduleSelector with CC_REPEAT_FOREVER and a 0 delay
|
protected |
Schedules the 'callback' function for a given target with a given priority.
The 'callback' selector will be called every frame. The lower the priority, the earlier it is called.
|
inline |
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 CC_REPEAT_FOREVER to let the action run continuously delay is the amount of time the action will wait before it'll start
|
inline |
calls scheduleSelector with CC_REPEAT_FOREVER and a 0 delay
|
inline |
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.
|
inline |
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.
|
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.
void unschedule | ( | const std::string & | key, |
void * | target | ||
) |
Unschedules a callback for a key and a given target.
If you want to unschedule the 'callbackPerFrame', use unscheduleUpdate.
void unschedule | ( | SEL_SCHEDULE | selector, |
Ref * | target | ||
) |
Unschedule a selector for a given target.
If you want to unschedule the "update", use unscheudleUpdate.
void unscheduleAll | ( | void | ) |
Unschedules all selectors from all targets.
You should NEVER call this method, unless you know what you are doing.
void unscheduleAllForTarget | ( | void * | target | ) |
Unschedules all selectors for a given target.
This also includes the "update" selector.
void unscheduleAllWithMinPriority | ( | int | minPriority | ) |
Unschedules all selectors from all targets with a minimum priority.
You should only call this with kPriorityNonSystemMin or higher.
|
inline |
Unschedule a selector for a given target.
If you want to unschedule the "update", use unscheudleUpdateForTarget.
void unscheduleUpdate | ( | void * | target | ) |
Unschedules the update selector for a given target.
|
inline |
Unschedules the update selector for a given target.
void update | ( | float | dt | ) |
'update' the scheduler.
You should NEVER call this method, unless you know what you are doing. NA NA
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
|
static |