cocos2d-x  2.1.4

CCNode is the main element. More...

#include <CCNode.h>

Inheritance diagram for CCNode:
CCObject CCCopying CCClippingNode CCDrawNode CCLayer CCNodeRGBA CCParallaxNode CCParticleBatchNode CCParticleSystem CCRenderTexture CCScene CCSpriteBatchNode CCTMXTiledMap CCBatchNode CCBFile CCShaderNode CCTableViewCell

Public Member Functions

virtual CCCameragetCamera ()
 Returns a camera object that lets you move the node using a gluLookAt.
 
virtual bool isRunning ()
 Returns whether or not the node accepts event callbacks.
 
virtual void cleanup (void)
 Stops all running actions and schedulers.
 
virtual void draw (void)
 Override this method to draw your own node.
 
virtual void visit (void)
 Visits this node's children and draw them recursively.
 
CCRect boundingBox (void)
 Returns a "local" axis aligned bounding box of the node.
 
Setters & Getters for Graphic Peroperties
virtual void setZOrder (int zOrder)
 Sets the Z order which stands for the drawing order, and reorder this node in its parent's children array.
 
virtual void _setZOrder (int z)
 Sets the z order which stands for the drawing order.
 
virtual int getZOrder ()
 Gets the Z order of this node.
 
virtual void setVertexZ (float vertexZ)
 Sets the real OpenGL Z vertex.
 
virtual float getVertexZ ()
 Gets OpenGL Z vertex of this node.
 
virtual void setScaleX (float fScaleX)
 Changes the scale factor on X axis of this node.
 
virtual float getScaleX ()
 Returns the scale factor on X axis of this node.
 
virtual void setScaleY (float fScaleY)
 Changes the scale factor on Y axis of this node.
 
virtual float getScaleY ()
 Returns the scale factor on Y axis of this node.
 
virtual void setScale (float scale)
 Changes both X and Y scale factor of the node.
 
virtual float getScale ()
 Gets the scale factor of the node, when X and Y have the same scale factor.
 
virtual void setPosition (const CCPoint &position)
 Changes the position (x,y) of the node in OpenGL coordinates.
 
virtual const CCPointgetPosition ()
 Gets the position (x,y) of the node in OpenGL coordinates.
 
virtual void setPosition (float x, float y)
 Sets position in a more efficient way.
 
virtual void getPosition (float *x, float *y)
 Gets position in a more efficient way, returns two number instead of a CCPoint object.
 
virtual void setPositionX (float x)
 Gets/Sets x or y coordinate individually for position.
 
virtual float getPositionX (void)
 
virtual void setPositionY (float y)
 
virtual float getPositionY (void)
 
virtual void setSkewX (float fSkewX)
 Changes the X skew angle of the node in degrees.
 
virtual float getSkewX ()
 Returns the X skew angle of the node in degrees.
 
virtual void setSkewY (float fSkewY)
 Changes the Y skew angle of the node in degrees.
 
virtual float getSkewY ()
 Returns the Y skew angle of the node in degrees.
 
virtual void setAnchorPoint (const CCPoint &anchorPoint)
 Sets the anchor point in percent.
 
virtual const CCPointgetAnchorPoint ()
 Returns the anchor point in percent.
 
virtual const CCPointgetAnchorPointInPoints ()
 Returns the anchorPoint in absolute pixels.
 
virtual void setContentSize (const CCSize &contentSize)
 Sets the untransformed size of the node.
 
virtual const CCSizegetContentSize () const
 Returns the untransformed size of the node.
 
virtual void setVisible (bool visible)
 Sets whether the node is visible.
 
virtual bool isVisible ()
 Determines if the node is visible.
 
virtual void setRotation (float fRotation)
 Sets the rotation (angle) of the node in degrees.
 
virtual float getRotation ()
 Returns the rotation of the node in degrees.
 
virtual void setRotationX (float fRotaionX)
 Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew.
 
virtual float getRotationX ()
 Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew.
 
virtual void setRotationY (float fRotationY)
 Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
 
virtual float getRotationY ()
 Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
 
virtual void setOrderOfArrival (unsigned int uOrderOfArrival)
 Sets the arrival order when this node has a same ZOrder with other children.
 
virtual unsigned int getOrderOfArrival ()
 Returns the arrival order, indecates which children is added previously.
 
virtual void setGLServerState (ccGLServerState glServerState)
 Sets the state of OpenGL server side.
 
virtual ccGLServerState getGLServerState ()
 Returns the state of OpenGL server side.
 
virtual void ignoreAnchorPointForPosition (bool ignore)
 Sets whether the anchor point will be (0,0) when you position this node.
 
virtual bool isIgnoreAnchorPointForPosition ()
 Gets whether the anchor point will be (0,0) when you position this node.
 
Children and Parent
virtual void addChild (CCNode *child)
 Adds a child to the container with z-order as 0.
 
virtual void addChild (CCNode *child, int zOrder)
 Adds a child to the container with a z-order.
 
virtual void addChild (CCNode *child, int zOrder, int tag)
 Adds a child to the container with z order and tag.
 
CCNodegetChildByTag (int tag)
 Gets a child from the container with its tag.
 
virtual CCArraygetChildren ()
 Return an array of children.
 
unsigned int getChildrenCount (void) const
 Get the amount of children.
 
virtual void setParent (CCNode *parent)
 Sets the parent node.
 
virtual CCNodegetParent ()
 Returns a pointer to the parent node.
 
virtual void removeFromParent ()
 Removes this node itself from its parent node with a cleanup.
 
virtual void removeFromParentAndCleanup (bool cleanup)
 Removes this node itself from its parent node.
 
virtual void removeChild (CCNode *child)
 Removes a child from the container with a cleanup.
 
virtual void removeChild (CCNode *child, bool cleanup)
 Removes a child from the container.
 
virtual void removeChildByTag (int tag)
 Removes a child from the container by tag value with a cleanup.
 
virtual void removeChildByTag (int tag, bool cleanup)
 Removes a child from the container by tag value.
 
virtual void removeAllChildren ()
 Removes all children from the container with a cleanup.
 
virtual void removeAllChildrenWithCleanup (bool cleanup)
 Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter.
 
virtual void reorderChild (CCNode *child, int zOrder)
 Reorders a child according to a new z value.
 
virtual void sortAllChildren ()
 Sorts the children array once before drawing, instead of every time when a child is added or reordered.
 
Grid object for effects
virtual CCGridBasegetGrid ()
 Returns a grid object that is used when applying effects.
 
virtual void setGrid (CCGridBase *pGrid)
 Changes a grid object that is used when applying effects.
 
Tag & User data
virtual int getTag () const
 Returns a tag that is used to identify the node easily.
 
virtual void setTag (int nTag)
 Changes the tag that is used to identify the node easily.
 
virtual void * getUserData ()
 Returns a custom user data pointer.
 
virtual void setUserData (void *pUserData)
 Sets a custom user data pointer.
 
virtual CCObjectgetUserObject ()
 Returns a user assigned CCObject.
 
virtual void setUserObject (CCObject *pUserObject)
 Returns a user assigned CCObject.
 
Shader Program
virtual CCGLProgramgetShaderProgram ()
 Return the shader program currently used for this node.
 
virtual void setShaderProgram (CCGLProgram *pShaderProgram)
 Sets the shader program for this node.
 
Script Bindings for lua
virtual void registerScriptHandler (int handler)
 Registers a script function that will be called in onEnter() & onExit() seires functions.
 
virtual void unregisterScriptHandler (void)
 Unregisters a script function that will be called in onEnter() & onExit() series functions.
 
int getScriptHandler ()
 Gets script handler for onEnter/onExit event.
 
void scheduleUpdateWithPriorityLua (int nHandler, int priority)
 Schedules for lua script.
 
Event Callbacks
virtual void onEnter ()
 Event callback that is invoked every time when CCNode enters the 'stage'.
 
virtual void onEnterTransitionDidFinish ()
 Event callback that is invoked when the CCNode enters in the 'stage'.
 
virtual void onExit ()
 Event callback that is invoked every time the CCNode leaves the 'stage'.
 
virtual void onExitTransitionDidStart ()
 Event callback that is called every time the CCNode leaves the 'stage'.
 
Actions
virtual void setActionManager (CCActionManager *actionManager)
 Sets the CCActionManager object that is used by all actions.
 
virtual CCActionManagergetActionManager ()
 Gets the CCActionManager object that is used by all actions.
 
CCActionrunAction (CCAction *action)
 Executes an action, and returns the action that is executed.
 
void stopAllActions (void)
 Stops and removes all actions from the running action list .
 
void stopAction (CCAction *action)
 Stops and removes an action from the running action list.
 
void stopActionByTag (int tag)
 Removes an action from the running action list by its tag.
 
CCActiongetActionByTag (int tag)
 Gets an action from the running action list by its tag.
 
unsigned int numberOfRunningActions (void)
 Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays).
 
Scheduler and Timer
virtual void setScheduler (CCScheduler *scheduler)
 Sets a CCScheduler object that is used to schedule all "updates" and timers.
 
virtual CCSchedulergetScheduler ()
 Gets a CCSheduler object.
 
bool isScheduled (SEL_SCHEDULE selector)
 Checks whether a selector is scheduled.
 
void scheduleUpdate (void)
 Schedules the "update" method.
 
void scheduleUpdateWithPriority (int priority)
 Schedules the "update" method with a custom priority.
 
void unscheduleUpdate (void)
 
void schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
 Schedules a custom selector.
 
void schedule (SEL_SCHEDULE selector, float interval)
 Schedules a custom selector with an interval time in seconds.
 
void scheduleOnce (SEL_SCHEDULE selector, float delay)
 Schedules a selector that runs only once, with a delay of 0 or larger.
 
void schedule (SEL_SCHEDULE selector)
 Schedules a custom selector, the scheduled selector will be ticked every frame.
 
void unschedule (SEL_SCHEDULE selector)
 Unschedules a custom selector.
 
void unscheduleAllSelectors (void)
 Unschedule all scheduled selectors: custom selectors, and the 'update' selector.
 
void resumeSchedulerAndActions (void)
 Resumes all scheduled selectors and actions.
 
void pauseSchedulerAndActions (void)
 Pauses all scheduled selectors and actions.
 
virtual void update (float delta)
 
Transformations
void transform (void)
 Performs OpenGL view-matrix transformation based on position, scale, rotation and other attributes.
 
void transformAncestors (void)
 Performs OpenGL view-matrix transformation of it's ancestors.
 
virtual void updateTransform (void)
 Calls children's updateTransform() method recursively.
 
virtual CCAffineTransform nodeToParentTransform (void)
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
 
virtual CCAffineTransform parentToNodeTransform (void)
 Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates.
 
virtual CCAffineTransform nodeToWorldTransform (void)
 Returns the world affine transform matrix.
 
virtual CCAffineTransform worldToNodeTransform (void)
 Returns the inverse world affine transform matrix.
 
Coordinate Converters
CCPoint convertToNodeSpace (const CCPoint &worldPoint)
 Converts a Point to node (local) space coordinates.
 
CCPoint convertToWorldSpace (const CCPoint &nodePoint)
 Converts a Point to world space coordinates.
 
CCPoint convertToNodeSpaceAR (const CCPoint &worldPoint)
 Converts a Point to node (local) space coordinates.
 
CCPoint convertToWorldSpaceAR (const CCPoint &nodePoint)
 Converts a local Point to world space coordinates.The result is in Points.
 
CCPoint convertTouchToNodeSpace (CCTouch *touch)
 convenience methods which take a CCTouch instead of CCPoint
 
CCPoint convertTouchToNodeSpaceAR (CCTouch *touch)
 converts a CCTouch (world coordinates) into a local coordinate.
 
void setAdditionalTransform (const CCAffineTransform &additionalTransform)
 Sets the additional transform.
 
component functions
CCComponentgetComponent (const char *pName) const
 gets a component by its name
 
virtual bool addComponent (CCComponent *pComponent)
 adds a component
 
virtual bool removeComponent (const char *pName)
 removes a component by its name
 
virtual void removeAllComponents ()
 removes all components
 
- Public Member Functions inherited from CCObject
 CCObject (void)
 
virtual ~CCObject (void)
 
void release (void)
 
void retain (void)
 
CCObjectautorelease (void)
 
CCObjectcopy (void)
 
bool isSingleReference (void) const
 
unsigned int retainCount (void) const
 
virtual bool isEqual (const CCObject *pObject)
 
virtual void acceptVisitor (CCDataVisitor &visitor)
 
- Public Member Functions inherited from CCCopying
virtual CCObjectcopyWithZone (CCZone *pZone)
 

Protected Attributes

float m_fRotationX
 rotation angle on x-axis
 
float m_fRotationY
 rotation angle on y-axis
 
float m_fScaleX
 scaling factor on x-axis
 
float m_fScaleY
 scaling factor on y-axis
 
float m_fVertexZ
 OpenGL real Z vertex.
 
CCPoint m_obPosition
 position of the node
 
float m_fSkewX
 skew angle on x-axis
 
float m_fSkewY
 skew angle on y-axis
 
CCPoint m_obAnchorPointInPoints
 anchor point in points
 
CCPoint m_obAnchorPoint
 anchor point normalized (NOT in points)
 
CCSize m_obContentSize
 untransformed size of the node
 
CCAffineTransform m_sAdditionalTransform
 transform
 
CCAffineTransform m_sTransform
 transform
 
CCAffineTransform m_sInverse
 transform
 
CCCameram_pCamera
 a camera
 
CCGridBasem_pGrid
 a grid
 
int m_nZOrder
 z-order value that affects the draw order
 
CCArraym_pChildren
 array of children nodes
 
CCNodem_pParent
 weak reference to parent node
 
int m_nTag
 a tag. Can be any number you assigned just to identify this node
 
void * m_pUserData
 A user assingned void pointer, Can be point to any cpp object.
 
CCObjectm_pUserObject
 A user assigned CCObject.
 
CCGLProgramm_pShaderProgram
 OpenGL shader.
 
ccGLServerState m_eGLServerState
 OpenGL servier side state.
 
unsigned int m_uOrderOfArrival
 used to preserve sequence while sorting children with the same zOrder
 
CCSchedulerm_pScheduler
 scheduler used to schedule timers and updates
 
CCActionManagerm_pActionManager
 a pointer to ActionManager singleton, which is used to handle all the actions
 
bool m_bRunning
 is running
 
bool m_bTransformDirty
 transform dirty flag
 
bool m_bInverseDirty
 transform dirty flag
 
bool m_bAdditionalTransformDirty
 The flag to check whether the additional transform is dirty.
 
bool m_bVisible
 is this node visible
 
bool m_bIgnoreAnchorPointForPosition
 true if the Anchor Point will be (0,0) when you position the CCNode, false otherwise.
 
bool m_bReorderChildDirty
 children order dirty flag
 
int m_nScriptHandler
 script handler for onEnter() & onExit(), used in Javascript binding and Lua binding.
 
int m_nUpdateScriptHandler
 script handler for update() callback per frame, which is invoked from lua & javascript.
 
ccScriptType m_eScriptType
 type of script binding, lua or javascript
 
CCComponentContainerm_pComponentContainer
 Dictionary of components.
 
- Protected Attributes inherited from CCObject
unsigned int m_uReference
 
unsigned int m_uAutoReleaseCount
 

Constructor, Distructor and Initializers

 CCNode (void)
 Default constructor.
 
virtual ~CCNode (void)
 Default destructor.
 
virtual bool init ()
 Initializes the instance of CCNode.
 
const char * description (void)
 Gets the description string.
 
static CCNodecreate (void)
 Allocates and initializes a node.
 

Additional Inherited Members

- Public Attributes inherited from CCObject
unsigned int m_uID
 
int m_nLuaID
 

Detailed Description

CCNode is the main element.

Anything that gets drawn or contains things that get drawn is a CCNode. The most popular CCNodes are: CCScene, CCLayer, CCSprite, CCMenu.

The main features of a CCNode are:

  • They can contain other CCNode nodes (addChild, getChildByTag, removeChild, etc)
  • They can schedule periodic callback (schedule, unschedule, etc)
  • They can execute actions (runAction, stopAction, etc)

Some CCNode nodes provide extra functionality for them or their children.

Subclassing a CCNode usually means (one/all) of:

  • overriding init to initialize resources and schedule callbacks
  • create callbacks to handle the advancement of time
  • overriding draw to render the node

Features of CCNode:

  • position
  • scale (x, y)
  • rotation (in degrees, clockwise)
  • CCCamera (an interface to gluLookAt )
  • CCGridBase (to do mesh transformations)
  • anchor point
  • size
  • visible
  • z-order
  • openGL z position

Default values:

  • rotation: 0
  • position: (x=0,y=0)
  • scale: (x=1,y=1)
  • contentSize: (x=0,y=0)
  • anchorPoint: (x=0,y=0)

Limitations:

  • A CCNode is a "void" object. It doesn't have a texture

Order in transformations with grid disabled

  1. The node will be translated (position)
  2. The node will be rotated (rotation)
  3. The node will be scaled (scale)
  4. The node will be moved according to the camera values (camera)

Order in transformations with grid enabled

  1. The node will be translated (position)
  2. The node will be rotated (rotation)
  3. The node will be scaled (scale)
  4. The grid will capture the screen
  5. The node will be moved according to the camera values (camera)
  6. The grid will render the captured screen

Camera:

  • Each node has a camera. By default it points to the center of the CCNode.

The documentation for this class was generated from the following file:
  • /Users/minggo/SourceCode/cocos2dx-root/cocos2dx/base_nodes/CCNode.h