Class cc.SpriteBatchNode

Class Summary
Constructor Attributes Constructor Name and Description
 
cc.SpriteBatchNode(fileImage, capacity)

A cc.SpriteBatchNode can reference one and only one texture (one image file, one texture atlas).

Method Summary

Class Detail

cc.SpriteBatchNode(fileImage, capacity)

A cc.SpriteBatchNode can reference one and only one texture (one image file, one texture atlas).
Only the cc.Sprites that are contained in that texture can be added to the cc.SpriteBatchNode.
All cc.Sprites added to a cc.SpriteBatchNode are drawn in one WebGL draw call.
If the cc.Sprites are not added to a cc.SpriteBatchNode then an WebGL draw call will be needed for each one, which is less efficient.

Limitations:
- The only object that is accepted as child (or grandchild, grand-grandchild, etc...) is cc.Sprite or any subclass of cc.Sprite.
eg: particles, labels and layer can't be added to a cc.SpriteBatchNode.
- Either all its children are Aliased or Antialiased. It can't be a mix.
This is because "alias" is a property of the texture, and all the sprites share the same texture.

// 1. create a SpriteBatchNode with image path
var spriteBatchNode = new cc.SpriteBatchNode("res/animations/grossini.png", 50);

// 2. create a SpriteBatchNode with texture
var texture = cc.textureCache.addImage("res/animations/grossini.png");
var spriteBatchNode = new cc.SpriteBatchNode(texture,50);
Parameters:
{String|cc.Texture2D} fileImage
{Number} capacity

Field Detail

<static> <constant> {Number} cc.SpriteBatchNode.DEFAULT_CAPACITY
{Array} descendants
- <@readonly> Descendants of sprite batch node
{cc.TextureAtlas} textureAtlas
- The texture atlas

Method Detail

  • addChild(child, zOrder, tag)
    Add child to the sprite batch node (override addChild of cc.Node)
    Parameters:
    {cc.Sprite} child
    {Number} zOrder Optional
    {Number} tag Optional
  • {cc.SpriteBatchNode} addSpriteWithoutQuad(child, z, aTag)

    This is the opposite of "addQuadFromSprite.
    It add the sprite to the children and descendants array, but it doesn't update add it to the texture atlas

    Parameters:
    {cc.Sprite} child
    {Number} z
    zOrder
    {Number} aTag
    Returns:
    {cc.SpriteBatchNode}
  • appendChild(sprite)
    Add child at the end, faster than insert child
    Parameters:
    {cc.Sprite} sprite
  • {Number} atlasIndexForChild(sprite, nZ)
    Returns atlas index for child
    Parameters:
    {cc.Sprite} sprite
    {Number} nZ
    Returns:
    {Number}
  • <static> {cc.SpriteBatchNode} cc.SpriteBatchNode.create(fileImage, capacity)

    creates a cc.SpriteBatchNodeCanvas with a file image (.png, .jpg etc) with a default capacity of 29 children.
    The capacity will be increased in 33% in runtime if it run out of space.
    The file will be loaded using the TextureMgr.

    Parameters:
    {String|cc.Texture2D} fileImage
    {Number} capacity
    Deprecated:
    since v3.0, please use new construction instead
    Returns:
    {cc.SpriteBatchNode}
    See:
    cc.SpriteBatchNode
  • <static> cc.SpriteBatchNode.createWithTexture()
    Deprecated:
    since v3.0, please use new construction instead
    See:
    cc.SpriteBatchNode
  • {cc.BlendFunc} getBlendFunc()
    Returns the blending function used for the texture
    Returns:
    {cc.BlendFunc}
  • {Array} getDescendants()
    Return Descendants of cc.SpriteBatchNode
    Returns:
    {Array}
  • {cc.Texture2D} getTexture()
    Returns texture of the sprite batch node
    Returns:
    {cc.Texture2D}
  • {cc.TextureAtlas} getTextureAtlas()
    Return TextureAtlas of cc.SpriteBatchNode
    Returns:
    {cc.TextureAtlas}
  • {Number} highestAtlasIndexInChild(sprite)
    Returns highest atlas index in child
    Parameters:
    {cc.Sprite} sprite
    Returns:
    {Number}
  • increaseAtlasCapacity()
    Increase Atlas Capacity
  • {Boolean} init(fileImage, capacity)

    initializes a cc.SpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and a capacity of children.
    The capacity will be increased in 33% in runtime if it run out of space.
    The file will be loaded using the TextureMgr.
    Please pass parameters to constructor to initialize the sprite batch node, do not call this function yourself.

    Parameters:
    {String} fileImage
    {Number} capacity
    Returns:
    {Boolean}
  • {Boolean} initWithFile(fileImage, capacity)

    Initializes a cc.SpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and a capacity of children.
    The capacity will be increased in 33% in runtime if it run out of space.
    The file will be loaded using the TextureMgr.
    Please pass parameters to constructor to initialize the sprite batch node, do not call this function yourself.

    Parameters:
    {String} fileImage
    {Number} capacity
    Returns:
    {Boolean}
  • {Boolean} initWithTexture(tex, capacity)

    Initializes a cc.SpriteBatchNode with a texture2d and capacity of children.
    The capacity will be increased in 33% in runtime if it run out of space.
    Please pass parameters to constructor to initialize the sprite batch node, do not call this function yourself.

    Parameters:
    {cc.Texture2D} tex
    {Number} capacity Optional
    Returns:
    {Boolean}
  • insertChild(sprite, index)
    Insert a child
    Parameters:
    {cc.Sprite} sprite
    The child sprite
    {Number} index
    The insert index
  • insertQuadFromSprite(sprite, index)

    Inserts a quad at a certain index into the texture atlas. The cc.Sprite won't be added into the children array.
    This method should be called only when you are dealing with very big AtlasSprite and when most of the cc.Sprite won't be updated.
    For example: a tile map (cc.TMXMap) or a label with lots of characters (cc.LabelBMFont)

    Parameters:
    {cc.Sprite} sprite
    {Number} index
  • {Number} lowestAtlasIndexInChild(sprite)
    Returns lowest atlas index in child
    Parameters:
    {cc.Sprite} sprite
    Returns:
    {Number}
  • {Number} rebuildIndexInOrder(pobParent, index)
    Rebuild index in order for child
    Parameters:
    {cc.Sprite} pobParent
    {Number} index
    Returns:
    {Number}
  • removeAllChildren(cleanup)
    Removes all children from the container and do a cleanup all running actions depending on the cleanup parameter.
    (override removeAllChildren of cc.Node)
    Parameters:
    {Boolean} cleanup
  • removeChild(child, cleanup)
    Removes a child from cc.SpriteBatchNode (override removeChild of cc.Node)
    Parameters:
    {cc.Sprite} child
    {Boolean} cleanup
  • removeChildAtIndex(index, doCleanup)
    Removes a child given a certain index. It will also cleanup the running actions depending on the cleanup parameter.
    Parameters:
    {Number} index
    {Boolean} doCleanup
  • removeSpriteFromAtlas(sprite)
    Removes sprite from TextureAtlas
    Parameters:
    {cc.Sprite} sprite
  • reorderBatch(reorder)
    Sprites use this to start sortChildren, don't call this manually
    Parameters:
    {Boolean} reorder
  • reorderChild(child, zOrder)
    Reorder children (override reorderChild of cc.Node)
    Parameters:
    {cc.Sprite} child
    {Number} zOrder
  • setBlendFunc(src, dst)
    Sets the source and destination blending function for the texture
    Parameters:
    {Number | cc.BlendFunc} src
    {Number} dst
  • setTexture(texture)
    Sets the texture of the sprite batch node.
    Parameters:
    {cc.Texture2D} texture
  • setTextureAtlas(textureAtlas)
    TextureAtlas of cc.SpriteBatchNode setter
    Parameters:
    {cc.TextureAtlas} textureAtlas
  • sortAllChildren()
    Sort all children nodes (override draw of cc.Node)
  • updateQuadFromSprite(sprite, index)

    Updates a quad at a certain index into the texture atlas. The CCSprite won't be added into the children array.
    This method should be called only when you are dealing with very big AtlasSrite and when most of the cc.Sprite won't be updated.
    For example: a tile map (cc.TMXMap) or a label with lots of characters (BitmapFontAtlas)

    Parameters:
    {cc.Sprite} sprite
    {Number} index