Cocos2d-x  v3.10
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups
Sprite Class Reference

Sprite is a 2d image ( http://en.wikipedia.org/wiki/Sprite_(computer_graphics) ). More...

Inherits Node, and TextureProtocol.

Inherited by BillBoard, and PhysicsSprite.

Public Member Functions

virtual void setDisplayFrame (SpriteFrame *newFrame)
virtual bool isFrameDisplayed (SpriteFrame *frame) const
 Returns whether or not a SpriteFrame is being displayed.
 
virtual SpriteFramegetSpriteFrame () const
 Returns the current displayed frame.
 
virtual SpriteFramegetDisplayFrame () const
virtual SpriteFramedisplayFrame () const
bool isFlipY ()
void setFlipY (bool flippedY)
PolygonInfogetPolygonInfo ()
 returns a reference of the polygon information associated with this sprite More...
 
void setPolygonInfo (const PolygonInfo &info)
 set the sprite to use this new PolygonInfo More...
 
virtual std::string getDescription () const override
 Gets the description string. More...
 
const int getResourceType () const
 Return texture file type(0 = file, 1 = plist).
 
const std::string getResourceName () const
 Return texture file name.
 
BatchNode methods
virtual void updateTransform () override
 Updates the quad according the rotation, position, scale values.
 
virtual SpriteBatchNodegetBatchNode () const
 Returns the batch node object if this sprite is rendered by SpriteBatchNode. More...
 
virtual void setBatchNode (SpriteBatchNode *spriteBatchNode)
 Sets the batch node to sprite. More...
 
Texture / Frame methods
virtual void setTexture (const std::string &filename)
 Sets a new texture (from a filename) to the sprite. More...
 
virtual void setTexture (Texture2D *texture) override
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.The Texture's rect is not changed.
 
virtual Texture2DgetTexture () const override
virtual void setTextureRect (const Rect &rect)
 Updates the texture rect of the Sprite in points. More...
 
virtual void setTextureRect (const Rect &rect, bool rotated, const Size &untrimmedSize)
 It will update the texture coordinates and the vertex rectangle. More...
 
virtual void setVertexRect (const Rect &rect)
 Sets the vertex rect. More...
 
virtual void setSpriteFrame (const std::string &spriteFrameName)
virtual void setSpriteFrame (SpriteFrame *newFrame)
Animation methods
virtual void setDisplayFrameWithAnimationName (const std::string &animationName, ssize_t frameIndex)
 Changes the display frame with animation name and index. More...
 
Sprite Properties' setter/getters.
virtual bool isDirty () const
 Whether or not the Sprite needs to be updated in the Atlas. More...
 
virtual void setDirty (bool dirty)
 Makes the Sprite to be updated in the Atlas.
 
V3F_C4B_T2F_Quad getQuad () const
 Returns the quad (tex coords, vertex coords and color) information.
 
bool isTextureRectRotated () const
 Returns whether or not the texture rectangle is rotated.
 
ssize_t getAtlasIndex () const
 Returns the index used on the TextureAtlas.
 
void setAtlasIndex (ssize_t atlasIndex)
 Sets the index used on the TextureAtlas. More...
 
const RectgetTextureRect () const
 Returns the rect of the Sprite in points.
 
TextureAtlasgetTextureAtlas () const
 Gets the weak reference of the TextureAtlas when the sprite is rendered using via SpriteBatchNode.
 
void setTextureAtlas (TextureAtlas *textureAtlas)
 Sets the weak reference of the TextureAtlas when the sprite is rendered using via SpriteBatchNode.
 
const Vec2getOffsetPosition () const
 Gets the offset position of the sprite. More...
 
bool isFlippedX () const
 Returns the flag which indicates whether the sprite is flipped horizontally or not. More...
 
void setFlippedX (bool flippedX)
 Sets whether the sprite should be flipped horizontally or not. More...
 
bool isFlipX ()
void setFlipX (bool flippedX)
bool isFlippedY () const
 Return the flag which indicates whether the sprite is flipped vertically or not. More...
 
void setFlippedY (bool flippedY)
 Sets whether the sprite should be flipped vertically or not. More...
 
Functions inherited from TextureProtocol.
void setBlendFunc (const BlendFunc &blendFunc) override
const BlendFuncgetBlendFunc () const override
Functions inherited from Node.
virtual void setScaleX (float scaleX) override
 Sets the scale (x) of the node. More...
 
virtual void setScaleY (float scaleY) override
 Sets the scale (y) of the node. More...
 
virtual void setScale (float scaleX, float scaleY) override
 Sets the scale (x,y) of the node. More...
 
virtual void setPosition (const Vec2 &pos) override
 Sets the position (x,y) of the node in its parent's coordinate system. More...
 
virtual void setPosition (float x, float y) override
 Sets the position (x,y) of the node in its parent's coordinate system. More...
 
virtual void setRotation (float rotation) override
 Sets the rotation (angle) of the node in degrees. More...
 
virtual void setRotationSkewX (float rotationX) override
 Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew. More...
 
virtual void setRotationSkewY (float rotationY) override
 Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More...
 
virtual void setSkewX (float sx) override
 Changes the X skew angle of the node in degrees. More...
 
virtual void setSkewY (float sy) override
 Changes the Y skew angle of the node in degrees. More...
 
virtual void removeChild (Node *child, bool cleanup) override
 Removes a child from the container. More...
 
virtual void removeAllChildrenWithCleanup (bool cleanup) override
 Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter. More...
 
virtual void reorderChild (Node *child, int zOrder) override
 Reorders a child according to a new z value. More...
 
virtual void addChild (Node *child, int zOrder, int tag) override
 Adds a child to the container with z order and tag. More...
 
virtual void addChild (Node *child, int zOrder, const std::string &name) override
 Adds a child to the container with z order and tag. More...
 
virtual void sortAllChildren () override
 Sorts the children array once before drawing, instead of every time when a child is added or reordered. More...
 
virtual void setScale (float scale) override
 Sets the scale (x,y,z) of the node. More...
 
virtual void setPositionZ (float positionZ) override
 Sets the 'z' coordinate in the position. More...
 
virtual void setAnchorPoint (const Vec2 &anchor) override
 Sets the anchor point in percent. More...
 
virtual void ignoreAnchorPointForPosition (bool value) override
 Sets whether the anchor point will be (0,0) when you position this node. More...
 
virtual void setVisible (bool bVisible) override
 Sets whether the node is visible. More...
 
virtual void draw (Renderer *renderer, const Mat4 &transform, uint32_t flags) override
 Override this method to draw your own node. More...
 
virtual void setOpacityModifyRGB (bool modify) override
virtual bool isOpacityModifyRGB () const override
- Public Member Functions inherited from Node
virtual bool isRunning () const
 Returns whether or not the node is "running". More...
 
void scheduleUpdateWithPriorityLua (int handler, int priority)
 Schedules for lua script. More...
 
virtual void cleanup ()
 Stops and removes all running actions and schedulers.
 
virtual void visit (Renderer *renderer, const Mat4 &parentTransform, uint32_t parentFlags)
 Visits this node's children and send their render command recursively. More...
 
virtual ScenegetScene () const
 Returns the Scene that contains the Node. More...
 
virtual Rect getBoundingBox () const
 Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system. More...
 
virtual Rect boundingBox () const
virtual void setEventDispatcher (EventDispatcher *dispatcher)
 Set event dispatcher for node. More...
 
virtual EventDispatchergetEventDispatcher () const
 Get the event dispatcher. More...
 
void setPhysicsBody (PhysicsBody *body)
 Set the PhysicsBody that let the sprite effect with physics. More...
 
PhysicsBodygetPhysicsBody () const
 Get the PhysicsBody the sprite have. More...
 
void removeFromPhysicsWorld ()
 Remove this node from physics world. More...
 
void updateTransformFromPhysics (const Mat4 &parentTransform, uint32_t parentFlags)
 Update the transform matrix from physics.
 
virtual void updatePhysicsBodyTransform (const Mat4 &parentTransform, uint32_t parentFlags, float parentScaleX, float parentScaleY)
 Update physics body transform matrix.
 
unsigned short getCameraMask () const
 get & set camera mask, the node is visible by the camera whose camera flag & node's camera mask is true
 
virtual void setLocalZOrder (int localZOrder)
 LocalZOrder is the 'key' used to sort the node relative to its siblings. More...
 
virtual void setZOrder (int localZOrder)
virtual void _setLocalZOrder (int z)
virtual int getLocalZOrder () const
 Gets the local Z order of this node. More...
 
virtual int getZOrder () const
virtual void setGlobalZOrder (float globalZOrder)
 Defines the oder in which the nodes are renderer. More...
 
virtual float getGlobalZOrder () const
 Returns the Node's Global Z Order. More...
 
virtual float getScaleX () const
 Returns the scale factor on X axis of this node The scale factor on X axis.
 
virtual float getScaleY () const
 Returns the scale factor on Y axis of this node The scale factor on Y axis.
 
virtual void setScaleZ (float scaleZ)
 Changes the scale factor on Z axis of this node. More...
 
virtual float getScaleZ () const
 Returns the scale factor on Z axis of this node The scale factor on Z axis.
 
virtual float getScale () const
 Gets the scale factor of the node, when X and Y have the same scale factor. More...
 
virtual void setNormalizedPosition (const Vec2 &position)
 Sets the position (x,y) using values between 0 and 1. More...
 
virtual const Vec2getPosition () const
 Gets the position (x,y) of the node in its parent's coordinate system. More...
 
virtual const Vec2getNormalizedPosition () const
 Returns the normalized position. More...
 
virtual void getPosition (float *x, float *y) const
 Gets position in a more efficient way, returns two number instead of a Vec2 object. More...
 
virtual void setPositionX (float x)
 Sets the x coordinate of the node in its parent's coordinate system. More...
 
virtual float getPositionX (void) const
 Gets the x coordinate of the node in its parent's coordinate system. More...
 
virtual void setPositionY (float y)
 Sets the y coordinate of the node in its parent's coordinate system. More...
 
virtual float getPositionY (void) const
 Gets the y coordinate of the node in its parent's coordinate system. More...
 
virtual void setPosition3D (const Vec3 &position)
 Sets the position (X, Y, and Z) in its parent's coordinate system. More...
 
virtual Vec3 getPosition3D () const
 Returns the position (X,Y,Z) in its parent's coordinate system. More...
 
virtual void setVertexZ (float vertexZ)
virtual float getPositionZ () const
 Gets position Z coordinate of this node. More...
 
virtual float getVertexZ () const
virtual float getSkewX () const
 Returns the X skew angle of the node in degrees. More...
 
virtual float getSkewY () const
 Returns the Y skew angle of the node in degrees. More...
 
virtual const Vec2getAnchorPoint () const
 Returns the anchor point in percent. More...
 
virtual const Vec2getAnchorPointInPoints () const
 Returns the anchorPoint in absolute pixels. More...
 
virtual void setContentSize (const Size &contentSize)
 Sets the untransformed size of the node. More...
 
virtual const SizegetContentSize () const
 Returns the untransformed size of the node. More...
 
virtual bool isVisible () const
 Determines if the node is visible. More...
 
virtual float getRotation () const
 Returns the rotation of the node in degrees. More...
 
virtual void setRotation3D (const Vec3 &rotation)
 Sets the rotation (X,Y,Z) in degrees. More...
 
virtual Vec3 getRotation3D () const
 Returns the rotation (X,Y,Z) in degrees. More...
 
virtual void setRotationQuat (const Quaternion &quat)
 Set rotation by quaternion. More...
 
virtual Quaternion getRotationQuat () const
 Return the rotation by quaternion, Note that when _rotationZ_X == _rotationZ_Y, the returned quaternion equals to RotationZ_X * RotationY * RotationX, The rotation in quaternion.
 
virtual void setRotationX (float rotationX)
virtual float getRotationSkewX () const
 Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew. More...
 
virtual float getRotationX () const
virtual void setRotationY (float rotationY)
virtual float getRotationSkewY () const
 Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More...
 
virtual float getRotationY () const
void setOrderOfArrival (int orderOfArrival)
 Sets the arrival order when this node has a same ZOrder with other children. More...
 
int getOrderOfArrival () const
 Returns the arrival order, indicates which children is added previously. More...
 
void setGLServerState (int serverState)
int getGLServerState () const
virtual bool isIgnoreAnchorPointForPosition () const
 Gets whether the anchor point will be (0,0) when you position this node. More...
 
virtual void addChild (Node *child)
 Adds a child to the container with z-order as 0. More...
 
virtual void addChild (Node *child, int localZOrder)
 Adds a child to the container with a local z-order. More...
 
virtual NodegetChildByTag (int tag) const
 Gets a child from the container with its tag. More...
 
template<typename T >
getChildByTag (int tag) const
 Gets a child from the container with its tag that can be cast to Type T. More...
 
var getChildByTag ( var tag)
local getChildByTag ( local tag)
virtual NodegetChildByName (const std::string &name) const
 Gets a child from the container with its name. More...
 
template<typename T >
getChildByName (const std::string &name) const
 Gets a child from the container with its name that can be cast to Type T. More...
 
virtual void enumerateChildren (const std::string &name, std::function< bool(Node *node)> callback) const
 Search the children of the receiving node to perform processing for nodes which share a name. More...
 
virtual Vector< Node * > & getChildren ()
 Returns the array of the node's children. More...
 
virtual const Vector< Node * > & getChildren () const
virtual ssize_t getChildrenCount () const
 Returns the amount of children. More...
 
virtual void setParent (Node *parent)
 Sets the parent node. More...
 
virtual NodegetParent ()
 Returns a pointer to the parent node. More...
 
virtual const NodegetParent () const
virtual void removeFromParent ()
 Removes this node itself from its parent node with a cleanup. More...
 
virtual void removeFromParentAndCleanup (bool cleanup)
 Removes this node itself from its parent node. More...
 
virtual void removeChildByTag (int tag, bool cleanup=true)
 Removes a child from the container by tag value. More...
 
virtual void removeChildByName (const std::string &name, bool cleanup=true)
 Removes a child from the container by tag value. More...
 
virtual void removeAllChildren ()
 Removes all children from the container with a cleanup.
 
virtual int getTag () const
 Returns a tag that is used to identify the node easily. More...
 
virtual void setTag (int tag)
 Changes the tag that is used to identify the node easily. More...
 
virtual const std::string & getName () const
 Returns a string that is used to identify the node. More...
 
virtual void setName (const std::string &name)
 Changes the name that is used to identify the node easily. More...
 
virtual void * getUserData ()
 Returns a custom user data pointer. More...
 
virtual const void * getUserData () const
virtual void setUserData (void *userData)
 Sets a custom user data pointer. More...
 
virtual RefgetUserObject ()
 Returns a user assigned Object. More...
 
virtual const RefgetUserObject () const
virtual void setUserObject (Ref *userObject)
 Returns a user assigned Object. More...
 
GLProgramgetGLProgram () const
 Return the GLProgram (shader) currently used for this node. More...
 
GLProgramgetShaderProgram () const
virtual void setGLProgram (GLProgram *glprogram)
 Sets the shader program for this node. More...
 
void setShaderProgram (GLProgram *glprogram)
GLProgramStategetGLProgramState () const
 Return the GLProgramState currently used for this node. More...
 
virtual void setGLProgramState (GLProgramState *glProgramState)
 Set the GLProgramState for this node. More...
 
virtual void onEnter ()
 Event callback that is invoked every time when Node enters the 'stage'. More...
 
virtual void onEnterTransitionDidFinish ()
 Event callback that is invoked when the Node enters in the 'stage'. More...
 
virtual void onExit ()
 Event callback that is invoked every time the Node leaves the 'stage'. More...
 
virtual void onExitTransitionDidStart ()
 Event callback that is called every time the Node leaves the 'stage'. More...
 
virtual void setActionManager (ActionManager *actionManager)
 Sets the ActionManager object that is used by all actions. More...
 
virtual ActionManagergetActionManager ()
 Gets the ActionManager object that is used by all actions. More...
 
virtual const ActionManagergetActionManager () const
virtual ActionrunAction (Action *action)
 Executes an action, and returns the action that is executed. More...
 
void stopAllActions ()
 Stops and removes all actions from the running action list .
 
void stopAction (Action *action)
 Stops and removes an action from the running action list. More...
 
void stopActionByTag (int tag)
 Removes an action from the running action list by its tag. More...
 
void stopAllActionsByTag (int tag)
 Removes all actions from the running action list by its tag. More...
 
void stopActionsByFlags (unsigned int flags)
 Removes all actions from the running action list by its flags. More...
 
ActiongetActionByTag (int tag)
 Gets an action from the running action list by its tag. More...
 
ssize_t getNumberOfRunningActions () const
 Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays). More...
 
ssize_t numberOfRunningActions () const
virtual void setScheduler (Scheduler *scheduler)
 Sets a Scheduler object that is used to schedule all "updates" and timers. More...
 
virtual SchedulergetScheduler ()
 Gets a Sheduler object. More...
 
virtual const SchedulergetScheduler () const
bool isScheduled (SEL_SCHEDULE selector)
 Checks whether a selector is scheduled. More...
 
bool isScheduled (const std::string &key)
 Checks whether a lambda function is scheduled. More...
 
void scheduleUpdate (void)
 Schedules the "update" method. More...
 
void scheduleUpdateWithPriority (int priority)
 Schedules the "update" method with a custom priority. More...
 
void unscheduleUpdate (void)
void schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
 Schedules a custom selector. More...
 
void schedule (SEL_SCHEDULE selector, float interval)
 Schedules a custom selector with an interval time in seconds. More...
 
void scheduleOnce (SEL_SCHEDULE selector, float delay)
 Schedules a selector that runs only once, with a delay of 0 or larger The SEL_SCHEDULE selector to be scheduled. More...
 
void scheduleOnce (const std::function< void(float)> &callback, float delay, const std::string &key)
 Schedules a lambda function that runs only once, with a delay of 0 or larger The lambda function to be scheduled. More...
 
void schedule (SEL_SCHEDULE selector)
 Schedules a custom selector, the scheduled selector will be ticked every frame. More...
 
void schedule (const std::function< void(float)> &callback, const std::string &key)
 Schedules a lambda function. More...
 
void schedule (const std::function< void(float)> &callback, float interval, const std::string &key)
 Schedules a lambda function. More...
 
void schedule (const std::function< void(float)> &callback, float interval, unsigned int repeat, float delay, const std::string &key)
 Schedules a lambda function. More...
 
void unschedule (SEL_SCHEDULE selector)
 Unschedules a custom selector. More...
 
void unschedule (const std::string &key)
 Unschedules a lambda function. More...
 
void unscheduleAllCallbacks ()
 Unschedule all scheduled selectors and lambda functions: custom selectors, and the 'update' selector and lambda functions.
 
void unscheduleAllSelectors ()
virtual void resume (void)
 Resumes all scheduled selectors, actions and event listeners. More...
 
virtual void pause (void)
 Pauses all scheduled selectors, actions and event listeners. More...
 
void resumeSchedulerAndActions ()
 Resumes all scheduled selectors, actions and event listeners. More...
 
void pauseSchedulerAndActions ()
 Pauses all scheduled selectors, actions and event listeners. More...
 
virtual void update (float delta)
 Update method will be called automatically every frame if "scheduleUpdate" is called, and the node is "live".
 
virtual const Mat4getNodeToParentTransform () const
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. More...
 
virtual AffineTransform getNodeToParentAffineTransform () const
virtual Mat4 getNodeToParentTransform (Node *ancestor) const
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. More...
 
virtual AffineTransform getNodeToParentAffineTransform (Node *ancestor) const
 Returns the affine transform matrix that transform the node's (local) space coordinates into the parent's space coordinates. More...
 
virtual void setNodeToParentTransform (const Mat4 &transform)
 Sets the transformation matrix manually. More...
 
virtual AffineTransform nodeToParentTransform () const
virtual const Mat4getParentToNodeTransform () const
 Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. More...
 
virtual AffineTransform getParentToNodeAffineTransform () const
virtual AffineTransform parentToNodeTransform () const
virtual Mat4 getNodeToWorldTransform () const
 Returns the world affine transform matrix. More...
 
virtual AffineTransform getNodeToWorldAffineTransform () const
virtual AffineTransform nodeToWorldTransform () const
virtual Mat4 getWorldToNodeTransform () const
 Returns the inverse world affine transform matrix. More...
 
virtual AffineTransform getWorldToNodeAffineTransform () const
virtual AffineTransform worldToNodeTransform () const
Vec2 convertToNodeSpace (const Vec2 &worldPoint) const
 Converts a Vec2 to node (local) space coordinates. More...
 
Vec2 convertToWorldSpace (const Vec2 &nodePoint) const
 Converts a Vec2 to world space coordinates. More...
 
Vec2 convertToNodeSpaceAR (const Vec2 &worldPoint) const
 Converts a Vec2 to node (local) space coordinates. More...
 
Vec2 convertToWorldSpaceAR (const Vec2 &nodePoint) const
 Converts a local Vec2 to world space coordinates.The result is in Points. More...
 
Vec2 convertTouchToNodeSpace (Touch *touch) const
 Convenience methods which take a Touch instead of Vec2. More...
 
Vec2 convertTouchToNodeSpaceAR (Touch *touch) const
 Converts a Touch (world coordinates) into a local coordinate. More...
 
void setAdditionalTransform (Mat4 *additionalTransform)
 Sets an additional transform matrix to the node. More...
 
void setAdditionalTransform (const AffineTransform &additionalTransform)
Component * getComponent (const std::string &name)
 Gets a component by its name. More...
 
virtual bool addComponent (Component *component)
 Adds a component. More...
 
virtual bool removeComponent (const std::string &name)
 Removes a component by its name. More...
 
virtual bool removeComponent (Component *component)
 Removes a component by its pointer. More...
 
virtual void removeAllComponents ()
 Removes all components.
 
- Public Member Functions inherited from Ref
void retain ()
 Retains the ownership. More...
 
void release ()
 Releases the ownership immediately. More...
 
Refautorelease ()
 Releases the ownership sometime soon automatically. More...
 
unsigned int getReferenceCount () const
 Returns the Ref's current reference count. More...
 
virtual ~Ref ()
 Destructor.
 

Static Public Member Functions

Creators
static Spritecreate ()
 Creates an empty sprite without texture. More...
 
static Spritecreate (const std::string &filename)
 Creates a sprite with an image filename. More...
 
static Spritecreate (const PolygonInfo &info)
 Creates a polygon sprite with a polygon info. More...
 
static Spritecreate (const std::string &filename, const Rect &rect)
 Creates a sprite with an image filename and a rect. More...
 
static SpritecreateWithTexture (Texture2D *texture)
 Creates a sprite with a Texture2D object. More...
 
static SpritecreateWithTexture (Texture2D *texture, const Rect &rect, bool rotated=false)
 Creates a sprite with a texture and a rect. More...
 
static SpritecreateWithSpriteFrame (SpriteFrame *spriteFrame)
 Creates a sprite with an sprite frame. More...
 
static SpritecreateWithSpriteFrameName (const std::string &spriteFrameName)
 Creates a sprite with an sprite frame name. More...
 
- Static Public Member Functions inherited from Node
static Nodecreate ()
 Allocates and initializes a node. More...
 

Static Public Attributes

static const int INDEX_NOT_INITIALIZED = -1
 Sprite invalid index on the SpriteBatchNode.
 
- Static Public Attributes inherited from Node
static const int INVALID_TAG = -1
 Default tag used for all the nodes.
 

Protected Member Functions

virtual bool initWithTexture (Texture2D *texture)
 Initializes a sprite with a texture. More...
 
virtual bool initWithPolygon (const PolygonInfo &info)
 Initializes a sprite with a PolygonInfo. More...
 
virtual bool initWithTexture (Texture2D *texture, const Rect &rect)
 Initializes a sprite with a texture and a rect. More...
 
virtual bool initWithTexture (Texture2D *texture, const Rect &rect, bool rotated)
 Initializes a sprite with a texture and a rect in points, optionally rotated. More...
 
virtual bool initWithSpriteFrame (SpriteFrame *spriteFrame)
 Initializes a sprite with an SpriteFrame. More...
 
virtual bool initWithSpriteFrameName (const std::string &spriteFrameName)
 Initializes a sprite with an sprite frame name. More...
 
virtual bool initWithFile (const std::string &filename)
 Initializes a sprite with an image filename. More...
 
virtual bool initWithFile (const std::string &filename, const Rect &rect)
 Initializes a sprite with an image filename, and a rect. More...
 

Additional Inherited Members

- Public Attributes inherited from Ref
unsigned int _ID
 object id, ScriptSupport need public _ID
 
int _luaID
 Lua reference id.
 
void * _scriptObject
 scriptObject, support for swift
 
bool _rooted
 When true, it means that the object was already rooted.
 
bool _scriptOwned
 The life of the object is scrolled by the scripting engine. More...
 

Detailed Description

Sprite is a 2d image ( http://en.wikipedia.org/wiki/Sprite_(computer_graphics) ).

Sprite can be created with an image, or with a sub-rectangle of an image.

To optimize the Sprite rendering, please follow the following best practices:

  • Put all your sprites in the same spritesheet (http://www.codeandweb.com/what-is-a-sprite-sheet).
  • Use the same blending function for all your sprites.
  • ...and the Renderer will automatically "batch" your sprites (will draw all of them in one OpenGL call).

To gain an additional 5% ~ 10% more in the rendering, you can parent your sprites into a SpriteBatchNode. But doing so carries the following limitations:

  • The Alias/Antialias property belongs to SpriteBatchNode, so you can't individually set the aliased property.
  • The Blending function property belongs to SpriteBatchNode, so you can't individually set the blending function property.
  • ParallaxNode is not supported, but can be simulated with a "proxy" sprite.
  • Sprites can only have other Sprites (or subclasses of Sprite) as children.

The default anchorPoint in Sprite is (0.5, 0.5).

Member Function Documentation

static Sprite* create ( )
static

Creates an empty sprite without texture.

You can call setTexture method subsequently.

Sprite An autoreleased sprite object.

static Sprite* create ( const std::string &  filename)
static

Creates a sprite with an image filename.

After creation, the rect of sprite will be the size of the image, and the offset will be (0,0).

A path to image file, e.g., "scene1/monster.png". An autoreleased sprite object.

static Sprite* create ( const PolygonInfo info)
static

Creates a polygon sprite with a polygon info.

A specified polygon info, you can get that from AutoPolygon. An autoreleased sprite object.

static Sprite* create ( const std::string &  filename,
const Rect rect 
)
static

Creates a sprite with an image filename and a rect.

A path to image file, e.g., "scene1/monster.png". A subrect of the image file. An autoreleased sprite object.

static Sprite* createWithTexture ( Texture2D texture)
static

Creates a sprite with a Texture2D object.

After creation, the rect will be the size of the texture, and the offset will be (0,0).

A pointer to a Texture2D object. An autoreleased sprite object.

static Sprite* createWithTexture ( Texture2D texture,
const Rect rect,
bool  rotated = false 
)
static

Creates a sprite with a texture and a rect.

After creation, the offset will be (0,0).

A pointer to an existing Texture2D object. You can use a Texture2D object for many sprites. Only the contents inside the rect of this texture will be applied for this sprite. Whether or not the rect is rotated. An autoreleased sprite object.

static Sprite*
createWithSpriteFrame
( SpriteFrame spriteFrame)
static

Creates a sprite with an sprite frame.

A sprite frame which involves a texture and a rect. An autoreleased sprite object.

static Sprite*
createWithSpriteFrameName
( const std::string &  spriteFrameName)
static

Creates a sprite with an sprite frame name.

A SpriteFrame will be fetched from the SpriteFrameCache by spriteFrameName param. If the SpriteFrame doesn't exist it will raise an exception.

A null terminated string which indicates the sprite frame name. An autoreleased sprite object.

virtual SpriteBatchNode*
getBatchNode
( ) const
virtual

Returns the batch node object if this sprite is rendered by SpriteBatchNode.

The SpriteBatchNode object if this sprite is rendered by SpriteBatchNode, nullptr if the sprite isn't used batch node.

virtual void setBatchNode ( SpriteBatchNode spriteBatchNode)
virtual

Sets the batch node to sprite.

This method is not recommended for game developers. Sample code for using batch node

SpriteBatchNode *batch = SpriteBatchNode::create("Images/grossini_dance_atlas.png", 15);
Sprite *sprite = Sprite::createWithTexture(batch->getTexture(), Rect(0, 0, 57, 57));
batch->addChild(sprite);
layer->addChild(batch);
virtual void setTexture ( const std::string &  filename)
virtual

Sets a new texture (from a filename) to the sprite.

Sprite It will call setTextureRect() with the texture's content size. The file path of the image file.

virtual void setTextureRect ( const Rect rect)
virtual

Updates the texture rect of the Sprite in points.

It will call setTextureRect(const Rect& rect, bool rotated, const Size& untrimmedSize) with rotated = false, and utrimmedSize = rect.size.

virtual void setTextureRect ( const Rect rect,
bool  rotated,
const Size untrimmedSize 
)
virtual

It will update the texture coordinates and the vertex rectangle.

The used rect of the texture. Whether rotate or not. The size before trimmed.

virtual void setVertexRect ( const Rect rect)
virtual

Sets the vertex rect.

It will be called internally by setTextureRect. Useful if you want to create 2x images from SD images in Retina Display. Do not call it manually. Use setTextureRect instead.

virtual void setSpriteFrame ( const std::string &  spriteFrameName)
virtual

Sets a new SpriteFrame to the Sprite.

virtual void setDisplayFrame ( SpriteFrame newFrame)
inlinevirtual
virtual SpriteFrame*
getDisplayFrame
( ) const
inlinevirtual
virtual SpriteFrame* displayFrame ( ) const
inlinevirtual
virtual void
setDisplayFrameWithAnimationName
( const std::string &  animationName,
ssize_t  frameIndex 
)
virtual

Changes the display frame with animation name and index.

The animation name will be get from the AnimationCache.

virtual bool isDirty ( ) const
inlinevirtual

Whether or not the Sprite needs to be updated in the Atlas.

True if the sprite needs to be updated in the Atlas, false otherwise.

Reimplemented in PhysicsSprite.

void setAtlasIndex ( ssize_t  atlasIndex)
inline

Sets the index used on the TextureAtlas.

Don't modify this value unless you know what you are doing.

const Vec2& getOffsetPosition ( ) const
inline

Gets the offset position of the sprite.

Calculated automatically by editors like Zwoptex.

bool isFlippedX ( ) const

Returns the flag which indicates whether the sprite is flipped horizontally or not.

It only flips the texture of the sprite, and not the texture of the sprite's children. Also, flipping the texture doesn't alter the anchorPoint. If you want to flip the anchorPoint too, and/or to flip the children too use: sprite->setScaleX(sprite->getScaleX() * -1);

true if the sprite is flipped horizontally, false otherwise.

void setFlippedX ( bool  flippedX)

Sets whether the sprite should be flipped horizontally or not.

true if the sprite should be flipped horizontally, false otherwise.

bool isFlipX ( )
inline
void setFlipX ( bool  flippedX)
inline
bool isFlippedY ( ) const

Return the flag which indicates whether the sprite is flipped vertically or not.

It only flips the texture of the sprite, and not the texture of the sprite's children. Also, flipping the texture doesn't alter the anchorPoint. If you want to flip the anchorPoint too, and/or to flip the children too use: sprite->setScaleY(sprite->getScaleY() * -1);

true if the sprite is flipped vertically, false otherwise.

void setFlippedY ( bool  flippedY)

Sets whether the sprite should be flipped vertically or not.

true if the sprite should be flipped vertically, false otherwise.

bool isFlipY ( )
inline
void setFlipY ( bool  flippedY)
inline
PolygonInfo& getPolygonInfo ( )

returns a reference of the polygon information associated with this sprite

Returns
a copy of PolygonInfo
void setPolygonInfo ( const PolygonInfo info)

set the sprite to use this new PolygonInfo

Parameters
PolygonInfothe polygon information object
void setBlendFunc ( const BlendFunc blendFunc)
inlineoverride
When this function bound into js or lua,the parameter will be changed.
In js: var setBlendFunc(var src, var dst).
In lua: local setBlendFunc(local src, local dst).
virtual std::string getDescription ( ) const
overridevirtual

Gets the description string.

It makes debugging easier. A string

Reimplemented from Node.

virtual void setScaleX ( float  scaleX)
overridevirtual

Sets the scale (x) of the node.

It is a scaling factor that multiplies the width of the node and its children. The scale factor on X axis. The physics body doesn't support this.

Reimplemented from Node.

virtual void setScaleY ( float  scaleY)
overridevirtual

Sets the scale (y) of the node.

It is a scaling factor that multiplies the height of the node and its children. The scale factor on Y axis. The physics body doesn't support this.

Reimplemented from Node.

virtual void setScale ( float  scaleX,
float  scaleY 
)
overridevirtual

Sets the scale (x,y) of the node.

It is a scaling factor that multiplies the width and height of the node and its children. The scale factor on X axis. The scale factor on Y axis. The physics body doesn't support this.

Reimplemented from Node.

virtual void setPosition ( const Vec2 position)
overridevirtual

Sets the position (x,y) of the node in its parent's coordinate system.

Usually we use Vec2(x,y) to compose Vec2 object. This code snippet sets the node in the center of screen. The position (x,y) of the node in OpenGL coordinates.

Reimplemented from Node.

Reimplemented in PhysicsSprite.

virtual void setPosition ( float  x,
float  y 
)
overridevirtual

Sets the position (x,y) of the node in its parent's coordinate system.

Passing two numbers (x,y) is much efficient than passing Vec2 object. This method is bound to Lua and JavaScript. Passing a number is 10 times faster than passing a object from Lua to c++. X coordinate for position. Y coordinate for position.

Reimplemented from Node.

Reimplemented in PhysicsSprite.

virtual void setRotation ( float  rotation)
overridevirtual

Sets the rotation (angle) of the node in degrees.

0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise. The rotation of the node in degrees.

Reimplemented from Node.

Reimplemented in PhysicsSprite.

virtual void setRotationSkewX ( float  rotationX)
overridevirtual

Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew.

The difference between setRotationalSkew() and setSkew() is that the first one simulate Flash's skew functionality, while the second one uses the real skew function.

0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise. The X rotation in degrees which performs a horizontal rotational skew. The physics body doesn't support this.

Reimplemented from Node.

virtual void setRotationSkewY ( float  rotationY)
overridevirtual

Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.

The difference between setRotationalSkew() and setSkew() is that the first one simulate Flash's skew functionality, while the second one uses the real skew function.

0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise. The Y rotation in degrees. The physics body doesn't support this.

Reimplemented from Node.

virtual void setSkewX ( float  skewX)
overridevirtual

Changes the X skew angle of the node in degrees.

The difference between setRotationalSkew() and setSkew() is that the first one simulate Flash's skew functionality while the second one uses the real skew function.

This angle describes the shear distortion in the X direction. Thus, it is the angle between the Y coordinate and the left edge of the shape The default skewX angle is 0. Positive values distort the node in a CW direction. The X skew angle of the node in degrees. The physics body doesn't support this.

Reimplemented from Node.

virtual void setSkewY ( float  skewY)
overridevirtual

Changes the Y skew angle of the node in degrees.

The difference between setRotationalSkew() and setSkew() is that the first one simulate Flash's skew functionality while the second one uses the real skew function.

This angle describes the shear distortion in the Y direction. Thus, it is the angle between the X coordinate and the bottom edge of the shape. The default skewY angle is 0. Positive values distort the node in a CCW direction. The Y skew angle of the node in degrees. The physics body doesn't support this.

Reimplemented from Node.

virtual void removeChild ( Node child,
bool  cleanup 
)
overridevirtual

Removes a child from the container.

It will also cleanup all running actions depending on the cleanup parameter. The child node which will be removed. True if all running actions and callbacks on the child node will be cleanup, false otherwise.

Reimplemented from Node.

virtual void
removeAllChildrenWithCleanup
( bool  cleanup)
overridevirtual

Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter.

True if all running actions on all children nodes should be cleanup, false oterwise.

Reimplemented from Node.

virtual void reorderChild ( Node child,
int  localZOrder 
)
overridevirtual

Reorders a child according to a new z value.

An already added child node. It MUST be already added. Z order for drawing priority. Please refer to setLocalZOrder(int).

Reimplemented from Node.

virtual void addChild ( Node child,
int  localZOrder,
int  tag 
)
overridevirtual

Adds a child to the container with z order and tag.

If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately. A child node. Z order for drawing priority. Please refer to setLocalZOrder(int). An integer to identify the node easily. Please refer to setTag(int). Please use addChild(Node* child, int localZOrder, const std::string &name) instead.

Reimplemented from Node.

virtual void addChild ( Node child,
int  localZOrder,
const std::string &  name 
)
overridevirtual

Adds a child to the container with z order and tag.

If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately. A child node. Z order for drawing priority. Please refer to setLocalZOrder(int). A string to identify the node easily. Please refer to setName(int).

Reimplemented from Node.

virtual void sortAllChildren ( )
overridevirtual

Sorts the children array once before drawing, instead of every time when a child is added or reordered.

This approach can improves the performance massively. Don't call this manually unless a child added needs to be removed in the same frame.

Reimplemented from Node.

virtual void setScale ( float  scale)
overridevirtual

Sets the scale (x,y,z) of the node.

It is a scaling factor that multiplies the width, height and depth of the node and its children. The scale factor for X, Y and Z axis. The physics body doesn't support this.

Reimplemented from Node.

virtual void setPositionZ ( float  positionZ)
overridevirtual

Sets the 'z' coordinate in the position.

It is the OpenGL Z vertex value.

The OpenGL depth buffer and depth testing are disabled by default. You need to turn them on. In order to use this property correctly.

setPositionZ() also sets the setGlobalZValue() with the positionZ as value. OpenGL Z vertex of this node.

Reimplemented from Node.

virtual void setAnchorPoint ( const Vec2 anchorPoint)
overridevirtual

Sets the anchor point in percent.

anchorPoint is the point around which all transformations and positioning manipulations take place. It's like a pin in the node where it is "attached" to its parent. The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner. But you can use values higher than (1,1) and lower than (0,0) too. The default anchorPoint is (0.5,0.5), so it starts in the center of the node. If node has a physics body, the anchor must be in the middle, you cann't change this to other value. The anchor point of node.

Reimplemented from Node.

virtual void
ignoreAnchorPointForPosition
( bool  ignore)
overridevirtual

Sets whether the anchor point will be (0,0) when you position this node.

This is an internal method, only used by Layer and Scene. Don't call it outside framework. The default value is false, while in Layer and Scene are true. true if anchor point will be (0,0) when you position this node. This method should be renamed as setIgnoreAnchorPointForPosition(bool) or something with "set".

Reimplemented from Node.

virtual void setVisible ( bool  visible)
overridevirtual

Sets whether the node is visible.

The default value is true, a node is default to visible. true if the node is visible, false if the node is hidden.

Reimplemented from Node.

virtual void draw ( Renderer *  renderer,
const Mat4 transform,
uint32_t  flags 
)
overridevirtual

Override this method to draw your own node.

The following GL states will be enabled by default:

  • glEnableClientState(GL_VERTEX_ARRAY);
  • glEnableClientState(GL_COLOR_ARRAY);
  • glEnableClientState(GL_TEXTURE_COORD_ARRAY);
  • glEnable(GL_TEXTURE_2D); AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE But if you enable any other GL state, you should disable it after drawing your node.

Reimplemented from Node.

Reimplemented in BillBoard.

virtual bool initWithTexture ( Texture2D texture)
protectedvirtual

Initializes a sprite with a texture.

After initialization, the rect used will be the size of the texture, and the offset will be (0,0).

A pointer to an existing Texture2D object. You can use a Texture2D object for many sprites. True if the sprite is initialized properly, false otherwise.

virtual bool initWithPolygon ( const PolygonInfo info)
protectedvirtual

Initializes a sprite with a PolygonInfo.

After initialization, the rect used will be the size of the texture, and the offset will be (0,0).

Parameters
PolygonInfoa Polygon info contains the structure of the polygon.
Returns
True if the sprite is initialized properly, false otherwise.
virtual bool initWithTexture ( Texture2D texture,
const Rect rect 
)
protectedvirtual

Initializes a sprite with a texture and a rect.

After initialization, the offset will be (0,0).

A pointer to an exisiting Texture2D object. You can use a Texture2D object for many sprites. Only the contents inside rect of this texture will be applied for this sprite. True if the sprite is initialized properly, false otherwise.

virtual bool initWithTexture ( Texture2D texture,
const Rect rect,
bool  rotated 
)
protectedvirtual

Initializes a sprite with a texture and a rect in points, optionally rotated.

After initialization, the offset will be (0,0). This is the designated initializer.

A Texture2D object whose texture will be applied to this sprite. A rectangle assigned the contents of texture. Whether or not the texture rectangle is rotated. True if the sprite is initialized properly, false otherwise.

virtual bool initWithSpriteFrame ( SpriteFrame spriteFrame)
protectedvirtual

Initializes a sprite with an SpriteFrame.

The texture and rect in SpriteFrame will be applied on this sprite.

A SpriteFrame object. It should includes a valid texture and a rect. True if the sprite is initialized properly, false otherwise.

virtual bool
initWithSpriteFrameName
( const std::string &  spriteFrameName)
protectedvirtual

Initializes a sprite with an sprite frame name.

A SpriteFrame will be fetched from the SpriteFrameCache by name. If the SpriteFrame doesn't exist it will raise an exception.

A key string that can fected a valid SpriteFrame from SpriteFrameCache. True if the sprite is initialized properly, false otherwise.

virtual bool initWithFile ( const std::string &  filename)
protectedvirtual

Initializes a sprite with an image filename.

This method will find filename from local file system, load its content to Texture2D, then use Texture2D to create a sprite. After initialization, the rect used will be the size of the image. The offset will be (0,0).

The path to an image file in local file system. True if the sprite is initialized properly, false otherwise.

virtual bool initWithFile ( const std::string &  filename,
const Rect rect 
)
protectedvirtual

Initializes a sprite with an image filename, and a rect.

This method will find filename from local file system, load its content to Texture2D, then use Texture2D to create a sprite. After initialization, the offset will be (0,0).

The path to an image file in local file system. The rectangle assigned the content area from texture. True if the sprite is initialized properly, false otherwise.


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