Class Sprite

  • Direct Known Subclasses:
    TextureAtlas.AtlasSprite

    public class Sprite
    extends TextureRegion
    Holds the geometry, color, and texture information for drawing 2D sprites using Batch. 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 Batch.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.
    • Constructor Summary

      Constructors 
      Constructor Description
      Sprite()
      Creates an uninitialized sprite.
      Sprite​(com.badlogic.gdx.graphics.Texture texture)
      Creates a sprite with width, height, and texture region equal to the size of the texture.
      Sprite​(com.badlogic.gdx.graphics.Texture texture, int srcWidth, int srcHeight)
      Creates a sprite with width, height, and texture region equal to the specified size.
      Sprite​(com.badlogic.gdx.graphics.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​(Sprite sprite)
      Creates a sprite that is a copy in every way of the specified sprite.
      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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void draw​(com.badlogic.gdx.graphics.g2d.Batch batch)  
      void draw​(com.badlogic.gdx.graphics.g2d.Batch batch, float alphaModulation)  
      void flip​(boolean x, boolean y)
      boolean parameters x,y are not setting a state, but performing a flip
      com.badlogic.gdx.math.Rectangle getBoundingRectangle()
      Returns the bounding axis aligned Rectangle that bounds this sprite.
      com.badlogic.gdx.graphics.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 setAlpha​(float a)
      Sets the alpha portion of the color used to tint this 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 setCenter​(float x, float y)
      Sets the position so that the sprite is centered on (x, y)
      void setCenterX​(float x)
      Sets the x position so that it is centered on the given x parameter
      void setCenterY​(float y)
      Sets the y position so that it is centered on the given y parameter
      void setColor​(float r, float g, float b, float a)  
      void setColor​(com.badlogic.gdx.graphics.Color tint)
      Sets the color used to tint this sprite.
      void setFlip​(boolean x, boolean y)
      Set the sprite's flip state regardless of current condition
      void setOrigin​(float originX, float originY)
      Sets the origin in relation to the sprite's position for scaling and rotation.
      void setOriginBasedPosition​(float x, float y)
      Sets the position where the sprite will be drawn, relative to its current origin.
      void setOriginCenter()
      Place origin in the center of the sprite
      void setPackedColor​(float packedColor)
      Sets the color of this sprite, expanding the alpha from 0-254 to 0-255.
      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 java.lang.Object

        clone, equals, finalize, 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​(com.badlogic.gdx.graphics.Texture texture)
        Creates a sprite with width, height, and texture region equal to the size of the texture.
      • Sprite

        public Sprite​(com.badlogic.gdx.graphics.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.
        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​(com.badlogic.gdx.graphics.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).
      • setOriginBasedPosition

        public void setOriginBasedPosition​(float x,
                                           float y)
        Sets the position where the sprite will be drawn, relative to its current origin.
      • 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).
      • setCenterX

        public void setCenterX​(float x)
        Sets the x position so that it is centered on the given x parameter
      • setCenterY

        public void setCenterY​(float y)
        Sets the y position so that it is centered on the given y parameter
      • setCenter

        public void setCenter​(float x,
                              float y)
        Sets the position so that the sprite is centered on (x, y)
      • 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​(com.badlogic.gdx.graphics.Color tint)
        Sets the color used to tint this sprite. Default is Color.WHITE.
      • setAlpha

        public void setAlpha​(float a)
        Sets the alpha portion of the color used to tint this sprite.
      • setColor

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

        public void setPackedColor​(float packedColor)
        Sets the color of this sprite, expanding the alpha from 0-254 to 0-255.
        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.
      • setOriginCenter

        public void setOriginCenter()
        Place origin in the center of the sprite
      • 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 com.badlogic.gdx.math.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​(com.badlogic.gdx.graphics.g2d.Batch batch)
      • draw

        public void draw​(com.badlogic.gdx.graphics.g2d.Batch batch,
                         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.
      • 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 com.badlogic.gdx.graphics.Color getColor()
        Returns the color of this sprite. If the returned instance is manipulated, setColor(Color) must be called afterward.
      • setRegion

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

        public void setFlip​(boolean x,
                            boolean y)
        Set the sprite's flip state regardless of current condition
        Parameters:
        x - the desired horizontal flip state
        y - the desired vertical flip state
      • flip

        public void flip​(boolean x,
                         boolean y)
        boolean parameters x,y are not setting a state, but performing a flip
        Overrides:
        flip in class TextureRegion
        Parameters:
        x - perform horizontal flip
        y - perform vertical flip
      • 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.