com.badlogic.gdx.graphics.g2d
Class Sprite

java.lang.Object
  extended by com.badlogic.gdx.graphics.g2d.TextureRegion
      extended by com.badlogic.gdx.graphics.g2d.Sprite
Direct Known Subclasses:
ParticleEmitter.Particle, TextureAtlas.AtlasSprite

public class Sprite
extends TextureRegion

Holds the geometry, color, and texture information for drawing 2D sprites using SpriteBatch. A Sprite has a position and a size given as width and height. The position is relative to the origin of the coordinate system specified via SpriteBatch.begin() and the respective matrices. A Sprite is always rectangular and its position (x, y) are located in the bottom left corner of that rectangle. A Sprite also has an origin around which rotations and scaling are performed (that is, the origin is not modified by rotation and scaling). The origin is given relative to the bottom left corner of the Sprite, its position.

Author:
mzechner, Nathan Sweet

Constructor Summary
Sprite()
          Creates an uninitialized sprite.
Sprite(Sprite sprite)
          Creates a sprite that is a copy in every way of the specified sprite.
Sprite(Texture texture)
          Creates a sprite with width, height, and texture region equal to the size of the texture.
Sprite(Texture texture, int srcWidth, int srcHeight)
          Creates a sprite with width, height, and texture region equal to the specified size.
Sprite(Texture texture, int srcX, int srcY, int srcWidth, int srcHeight)
          Creates a sprite with width, height, and texture region equal to the specified size.
Sprite(TextureRegion region)
          Creates a sprite based on a specific TextureRegion, the new sprite's region is a copy of the parameter region - altering one does not affect the other
Sprite(TextureRegion region, int srcX, int srcY, int srcWidth, int srcHeight)
          Creates a sprite with width, height, and texture region equal to the specified size, relative to specified sprite's texture region.
 
Method Summary
 void draw(SpriteBatch spriteBatch)
           
 void draw(SpriteBatch spriteBatch, float alphaModulation)
           
 void flip(boolean x, boolean y)
          boolean parameters are not setting a state, but performing a flip
 Rectangle getBoundingRectangle()
          Returns the bounding axis aligned Rectangle that bounds this sprite.
 Color getColor()
          Returns the color of this sprite.
 float getHeight()
           
 float getOriginX()
          The origin influences setPosition(float, float), setRotation(float) and the expansion direction of scaling setScale(float, float)
 float getOriginY()
          The origin influences setPosition(float, float), setRotation(float) and the expansion direction of scaling setScale(float, float)
 float getRotation()
           
 float getScaleX()
          X scale of the sprite, independent of size set by setSize(float, float)
 float getScaleY()
          Y scale of the sprite, independent of size set by setSize(float, float)
 float[] getVertices()
          Returns the packed vertices, colors, and texture coordinates for this sprite.
 float getWidth()
           
 float getX()
           
 float getY()
           
 void rotate(float degrees)
          Sets the sprite's rotation in degrees relative to the current rotation.
 void rotate90(boolean clockwise)
          Rotates this sprite 90 degrees in-place by rotating the texture coordinates.
 void scale(float amount)
          Sets the sprite's scale relative to the current scale.
 void scroll(float xAmount, float yAmount)
          Offsets the region relative to the current region.
 void set(Sprite sprite)
          Make this sprite a copy in every way of the specified sprite
 void setBounds(float x, float y, float width, float height)
          Sets the position and size of the sprite when drawn, before scaling and rotation are applied.
 void setColor(Color tint)
          Sets the color used to tint this sprite.
 void setColor(float color)
           
 void setColor(float r, float g, float b, float a)
           
 void setOrigin(float originX, float originY)
          Sets the origin in relation to the sprite's position for scaling and rotation.
 void setPosition(float x, float y)
          Sets the position where the sprite will be drawn.
 void setRegion(float u, float v, float u2, float v2)
           
 void setRotation(float degrees)
          Sets the rotation of the sprite in degrees.
 void setScale(float scaleXY)
          Sets the sprite's scale for both X and Y uniformly.
 void setScale(float scaleX, float scaleY)
          Sets the sprite's scale for both X and Y.
 void setSize(float width, float height)
          Sets the size of the sprite when drawn, before scaling and rotation are applied.
 void setU(float u)
           
 void setU2(float u2)
           
 void setV(float v)
           
 void setV2(float v2)
           
 void setX(float x)
          Sets the x position where the sprite will be drawn.
 void setY(float y)
          Sets the y position where the sprite will be drawn.
 void translate(float xAmount, float yAmount)
          Sets the position relative to the current position where the sprite will be drawn.
 void translateX(float xAmount)
          Sets the x position relative to the current position where the sprite will be drawn.
 void translateY(float yAmount)
          Sets the y position relative to the current position where the sprite will be drawn.
 
Methods inherited from class com.badlogic.gdx.graphics.g2d.TextureRegion
getRegionHeight, getRegionWidth, getRegionX, getRegionY, getTexture, getU, getU2, getV, getV2, isFlipX, isFlipY, setRegion, setRegion, setRegion, setRegion, setRegionHeight, setRegionWidth, setRegionX, setRegionY, setTexture, split, split
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Sprite

public Sprite()
Creates an uninitialized sprite. The sprite will need a texture region and bounds set before it can be drawn.


Sprite

public Sprite(Texture texture)
Creates a sprite with width, height, and texture region equal to the size of the texture.


Sprite

public Sprite(Texture texture,
              int srcWidth,
              int srcHeight)
Creates a sprite with width, height, and texture region equal to the specified size. The texture region's upper left corner will be 0,0. * @param srcWidth The width of the texture region. May be negative to flip the sprite when drawn.

Parameters:
srcHeight - The height of the texture region. May be negative to flip the sprite when drawn.

Sprite

public Sprite(Texture texture,
              int srcX,
              int srcY,
              int srcWidth,
              int srcHeight)
Creates a sprite with width, height, and texture region equal to the specified size.

Parameters:
srcWidth - The width of the texture region. May be negative to flip the sprite when drawn.
srcHeight - The height of the texture region. May be negative to flip the sprite when drawn.

Sprite

public Sprite(TextureRegion region)
Creates a sprite based on a specific TextureRegion, the new sprite's region is a copy of the parameter region - altering one does not affect the other


Sprite

public Sprite(TextureRegion region,
              int srcX,
              int srcY,
              int srcWidth,
              int srcHeight)
Creates a sprite with width, height, and texture region equal to the specified size, relative to specified sprite's texture region.

Parameters:
srcWidth - The width of the texture region. May be negative to flip the sprite when drawn.
srcHeight - The height of the texture region. May be negative to flip the sprite when drawn.

Sprite

public Sprite(Sprite sprite)
Creates a sprite that is a copy in every way of the specified sprite.

Method Detail

set

public void set(Sprite sprite)
Make this sprite a copy in every way of the specified sprite


setBounds

public void setBounds(float x,
                      float y,
                      float width,
                      float height)
Sets the position and size of the sprite when drawn, before scaling and rotation are applied. If origin, rotation, or scale are changed, it is slightly more efficient to set the bounds after those operations.


setSize

public void setSize(float width,
                    float height)
Sets the size of the sprite when drawn, before scaling and rotation are applied. If origin, rotation, or scale are changed, it is slightly more efficient to set the size after those operations. If both position and size are to be changed, it is better to use setBounds(float, float, float, float).


setPosition

public void setPosition(float x,
                        float y)
Sets the position where the sprite will be drawn. If origin, rotation, or scale are changed, it is slightly more efficient to set the position after those operations. If both position and size are to be changed, it is better to use setBounds(float, float, float, float).


setX

public void setX(float x)
Sets the x position where the sprite will be drawn. If origin, rotation, or scale are changed, it is slightly more efficient to set the position after those operations. If both position and size are to be changed, it is better to use setBounds(float, float, float, float).


setY

public void setY(float y)
Sets the y position where the sprite will be drawn. If origin, rotation, or scale are changed, it is slightly more efficient to set the position after those operations. If both position and size are to be changed, it is better to use setBounds(float, float, float, float).


translateX

public void translateX(float xAmount)
Sets the x position relative to the current position where the sprite will be drawn. If origin, rotation, or scale are changed, it is slightly more efficient to translate after those operations.


translateY

public void translateY(float yAmount)
Sets the y position relative to the current position where the sprite will be drawn. If origin, rotation, or scale are changed, it is slightly more efficient to translate after those operations.


translate

public void translate(float xAmount,
                      float yAmount)
Sets the position relative to the current position where the sprite will be drawn. If origin, rotation, or scale are changed, it is slightly more efficient to translate after those operations.


setColor

public void setColor(Color tint)
Sets the color used to tint this sprite. Default is Color.WHITE.


setColor

public void setColor(float r,
                     float g,
                     float b,
                     float a)
See Also:
setColor(Color)

setColor

public void setColor(float color)
See Also:
setColor(Color), Color.toFloatBits()

setOrigin

public void setOrigin(float originX,
                      float originY)
Sets the origin in relation to the sprite's position for scaling and rotation.


setRotation

public void setRotation(float degrees)
Sets the rotation of the sprite in degrees. Rotation is centered on the origin set in setOrigin(float, float)


getRotation

public float getRotation()
Returns:
the rotation of the sprite in degrees

rotate

public void rotate(float degrees)
Sets the sprite's rotation in degrees relative to the current rotation. Rotation is centered on the origin set in setOrigin(float, float)


rotate90

public void rotate90(boolean clockwise)
Rotates this sprite 90 degrees in-place by rotating the texture coordinates. This rotation is unaffected by setRotation(float) and rotate(float).


setScale

public void setScale(float scaleXY)
Sets the sprite's scale for both X and Y uniformly. The sprite scales out from the origin. This will not affect the values returned by getWidth() and getHeight()


setScale

public void setScale(float scaleX,
                     float scaleY)
Sets the sprite's scale for both X and Y. The sprite scales out from the origin. This will not affect the values returned by getWidth() and getHeight()


scale

public void scale(float amount)
Sets the sprite's scale relative to the current scale. for example: original scale 2 -> sprite.scale(4) -> final scale 6. The sprite scales out from the origin. This will not affect the values returned by getWidth() and getHeight()


getVertices

public float[] getVertices()
Returns the packed vertices, colors, and texture coordinates for this sprite.


getBoundingRectangle

public Rectangle getBoundingRectangle()
Returns the bounding axis aligned Rectangle that bounds this sprite. The rectangles x and y coordinates describe its bottom left corner. If you change the position or size of the sprite, you have to fetch the triangle again for it to be recomputed.

Returns:
the bounding Rectangle

draw

public void draw(SpriteBatch spriteBatch)

draw

public void draw(SpriteBatch spriteBatch,
                 float alphaModulation)

getX

public float getX()

getY

public float getY()

getWidth

public float getWidth()
Returns:
the width of the sprite, not accounting for scale.

getHeight

public float getHeight()
Returns:
the height of the sprite, not accounting for scale.

getOriginX

public float getOriginX()
The origin influences setPosition(float, float), setRotation(float) and the expansion direction of scaling setScale(float, float)


getOriginY

public float getOriginY()
The origin influences setPosition(float, float), setRotation(float) and the expansion direction of scaling setScale(float, float)


getScaleX

public float getScaleX()
X scale of the sprite, independent of size set by setSize(float, float)


getScaleY

public float getScaleY()
Y scale of the sprite, independent of size set by setSize(float, float)


getColor

public Color getColor()
Returns the color of this sprite. Changing the returned color will have no affect, setColor(Color) or setColor(float, float, float, float) must be used.


setRegion

public void setRegion(float u,
                      float v,
                      float u2,
                      float v2)
Overrides:
setRegion in class TextureRegion

setU

public void setU(float u)
Overrides:
setU in class TextureRegion

setV

public void setV(float v)
Overrides:
setV in class TextureRegion

setU2

public void setU2(float u2)
Overrides:
setU2 in class TextureRegion

setV2

public void setV2(float v2)
Overrides:
setV2 in class TextureRegion

flip

public void flip(boolean x,
                 boolean y)
boolean parameters are not setting a state, but performing a flip

Overrides:
flip in class TextureRegion

scroll

public void scroll(float xAmount,
                   float yAmount)
Description copied from class: TextureRegion
Offsets the region relative to the current region. Generally the region's size should be the entire size of the texture in the direction(s) it is scrolled.

Overrides:
scroll in class TextureRegion
Parameters:
xAmount - The percentage to offset horizontally.
yAmount - The percentage to offset vertically. This is done in texture space, so up is negative.


Copyright © 2013. All Rights Reserved.