Package gaiasky.util.gdx.g2d
Class Sprite
- java.lang.Object
-
- gaiasky.util.gdx.g2d.TextureRegion
-
- gaiasky.util.gdx.g2d.Sprite
-
- Direct Known Subclasses:
TextureAtlas.AtlasSprite
public class Sprite extends TextureRegion
Holds the geometry, color, and texture information for drawing 2D sprites usingBatch. 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 viaBatch.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 otherSprite(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 voiddraw(com.badlogic.gdx.graphics.g2d.Batch batch)voiddraw(com.badlogic.gdx.graphics.g2d.Batch batch, float alphaModulation)voidflip(boolean x, boolean y)boolean parameters x,y are not setting a state, but performing a flipcom.badlogic.gdx.math.RectanglegetBoundingRectangle()Returns the bounding axis alignedRectanglethat bounds this sprite.com.badlogic.gdx.graphics.ColorgetColor()Returns the color of this sprite.floatgetHeight()floatgetOriginX()The origin influencessetPosition(float, float),setRotation(float)and the expansion direction of scalingsetScale(float, float)floatgetOriginY()The origin influencessetPosition(float, float),setRotation(float)and the expansion direction of scalingsetScale(float, float)floatgetRotation()floatgetScaleX()X scale of the sprite, independent of size set bysetSize(float, float)floatgetScaleY()Y scale of the sprite, independent of size set bysetSize(float, float)float[]getVertices()Returns the packed vertices, colors, and texture coordinates for this sprite.floatgetWidth()floatgetX()floatgetY()voidrotate(float degrees)Sets the sprite's rotation in degrees relative to the current rotation.voidrotate90(boolean clockwise)Rotates this sprite 90 degrees in-place by rotating the texture coordinates.voidscale(float amount)Sets the sprite's scale relative to the current scale.voidscroll(float xAmount, float yAmount)Offsets the region relative to the current region.voidset(Sprite sprite)Make this sprite a copy in every way of the specified spritevoidsetAlpha(float a)Sets the alpha portion of the color used to tint this sprite.voidsetBounds(float x, float y, float width, float height)Sets the position and size of the sprite when drawn, before scaling and rotation are applied.voidsetCenter(float x, float y)Sets the position so that the sprite is centered on (x, y)voidsetCenterX(float x)Sets the x position so that it is centered on the given x parametervoidsetCenterY(float y)Sets the y position so that it is centered on the given y parametervoidsetColor(float r, float g, float b, float a)voidsetColor(com.badlogic.gdx.graphics.Color tint)Sets the color used to tint this sprite.voidsetFlip(boolean x, boolean y)Set the sprite's flip state regardless of current conditionvoidsetOrigin(float originX, float originY)Sets the origin in relation to the sprite's position for scaling and rotation.voidsetOriginBasedPosition(float x, float y)Sets the position where the sprite will be drawn, relative to its current origin.voidsetOriginCenter()Place origin in the center of the spritevoidsetPackedColor(float packedColor)Sets the color of this sprite, expanding the alpha from 0-254 to 0-255.voidsetPosition(float x, float y)Sets the position where the sprite will be drawn.voidsetRegion(float u, float v, float u2, float v2)voidsetRotation(float degrees)Sets the rotation of the sprite in degrees.voidsetScale(float scaleXY)Sets the sprite's scale for both X and Y uniformly.voidsetScale(float scaleX, float scaleY)Sets the sprite's scale for both X and Y.voidsetSize(float width, float height)Sets the size of the sprite when drawn, before scaling and rotation are applied.voidsetU(float u)voidsetU2(float u2)voidsetV(float v)voidsetV2(float v2)voidsetX(float x)Sets the x position where the sprite will be drawn.voidsetY(float y)Sets the y position where the sprite will be drawn.voidtranslate(float xAmount, float yAmount)Sets the position relative to the current position where the sprite will be drawn.voidtranslateX(float xAmount)Sets the x position relative to the current position where the sprite will be drawn.voidtranslateY(float yAmount)Sets the y position relative to the current position where the sprite will be drawn.-
Methods inherited from class gaiasky.util.gdx.g2d.TextureRegion
getRegionHeight, getRegionWidth, getRegionX, getRegionY, getTexture, getU, getU2, getV, getV2, isFlipX, isFlipY, setRegion, setRegion, setRegion, setRegion, setRegionHeight, setRegionWidth, setRegionX, setRegionY, setTexture, split, split
-
-
-
-
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 usesetBounds(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 usesetBounds(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 usesetBounds(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 usesetBounds(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 isColor.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 insetOrigin(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 insetOrigin(float, float)
-
rotate90
public void rotate90(boolean clockwise)
Rotates this sprite 90 degrees in-place by rotating the texture coordinates. This rotation is unaffected bysetRotation(float)androtate(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 bygetWidth()andgetHeight()
-
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 bygetWidth()andgetHeight()
-
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 bygetWidth()andgetHeight()
-
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 alignedRectanglethat 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.
-
getOriginX
public float getOriginX()
The origin influencessetPosition(float, float),setRotation(float)and the expansion direction of scalingsetScale(float, float)
-
getOriginY
public float getOriginY()
The origin influencessetPosition(float, float),setRotation(float)and the expansion direction of scalingsetScale(float, float)
-
getScaleX
public float getScaleX()
X scale of the sprite, independent of size set bysetSize(float, float)
-
getScaleY
public float getScaleY()
Y scale of the sprite, independent of size set bysetSize(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:
setRegionin classTextureRegion
-
setU
public void setU(float u)
- Overrides:
setUin classTextureRegion
-
setV
public void setV(float v)
- Overrides:
setVin classTextureRegion
-
setU2
public void setU2(float u2)
- Overrides:
setU2in classTextureRegion
-
setV2
public void setV2(float v2)
- Overrides:
setV2in classTextureRegion
-
setFlip
public void setFlip(boolean x, boolean y)Set the sprite's flip state regardless of current condition- Parameters:
x- the desired horizontal flip statey- 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:
flipin classTextureRegion- Parameters:
x- perform horizontal flipy- perform vertical flip
-
scroll
public void scroll(float xAmount, float yAmount)Description copied from class:TextureRegionOffsets 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:
scrollin classTextureRegion- Parameters:
xAmount- The percentage to offset horizontally.yAmount- The percentage to offset vertically. This is done in texture space, so up is negative.
-
-