Phaser API Documentation

  Version: 
batchDraw(entries, [x], [y], [alpha], [tint])

Description:

Use this method if you have already called beginDraw and need to batch draw a large number of objects to this Render Texture.

This method batches the drawing of the given objects to this Render Texture, without causing a bind or batch flush.

It is faster than calling draw, but you must be very careful to manage the flow of code and remember to call endDraw(). If you don't need to draw large numbers of objects it's much safer and easier to use the draw method instead.

The flow should be:

// Call once:
RenderTexture.beginDraw();

// repeat n times:
RenderTexture.batchDraw();
// or
RenderTexture.batchDrawFrame();

// Call once:
RenderTexture.endDraw();

Do not call any methods other than batchDraw, batchDrawFrame, or endDraw once you have started a batch. Also, be very careful not to destroy this Render Texture while the batch is still open, or call beginDraw again.

Draws the given object, or an array of objects, to this Render Texture.

It can accept any of the following:

  • Any renderable Game Object, such as a Sprite, Text, Graphics or TileSprite.
  • Tilemap Layers.
  • A Group. The contents of which will be iterated and drawn in turn.
  • A Container. The contents of which will be iterated fully, and drawn in turn.
  • A Scene's Display List. Pass in Scene.children to draw the whole list.
  • Another Render Texture.
  • A Texture Frame instance.
  • A string. This is used to look-up a texture from the Texture Manager.

Note: You cannot draw a Render Texture to itself.

If passing in a Group or Container it will only draw children that return true when their willRender() method is called. I.e. a Container with 10 children, 5 of which have visible=false will only draw the 5 visible ones.

If passing in an array of Game Objects it will draw them all, regardless if they pass a willRender check or not.

You can pass in a string in which case it will look for a texture in the Texture Manager matching that string, and draw the base frame. If you need to specify exactly which frame to draw then use the method drawFrame instead.

You can pass in the x and y coordinates to draw the objects at. The use of the coordinates differ based on what objects are being drawn. If the object is a Group, Container or Display List, the coordinates are added to the positions of the children. For all other types of object, the coordinates are exact.

The alpha and tint values are only used by Texture Frames. Game Objects use their own alpha and tint values when being drawn.

Parameters:

name type arguments description
entries any

Any renderable Game Object, or Group, Container, Display List, other Render Texture, Texture Frame or an array of any of these.

x number <optional>

The x position to draw the Frame at, or the offset applied to the object.

y number <optional>

The y position to draw the Frame at, or the offset applied to the object.

alpha number <optional>

The alpha value. Only used for Texture Frames and if not specified defaults to the globalAlpha property. Game Objects use their own current alpha value.

tint number <optional>

WebGL only. The tint color value. Only used for Texture Frames and if not specified defaults to the globalTint property. Game Objects use their own current tint value.

Returns:
Description:

This Render Texture instance.