Class ImageSprite

java.lang.Object
games.stendhal.client.sprite.ImageSprite
All Implemented Interfaces:
Sprite
Direct Known Subclasses:
TextSprite

public class ImageSprite extends Object implements Sprite
A sprite to be displayed on the screen. Note that a sprite contains no state information, i.e. its just the image and not the location. This allows us to use a single sprite in lots of different places without having to store multiple copies of the image.
Author:
Kevin Glass
  • Constructor Details

    • ImageSprite

      public ImageSprite(Image image)
      Create a new sprite based on an image.
      Parameters:
      image - The image that is this sprite
    • ImageSprite

      public ImageSprite(Image image, Object reference)
      Create a new sprite based on an image.
      Parameters:
      image - The image that is this sprite.
      reference - The sprite reference, or null.
    • ImageSprite

      public ImageSprite(Sprite sprite)
      Create an image sprite from another sprite.
      Parameters:
      sprite - The source sprite.
  • Method Details

    • getGC

      protected static GraphicsConfiguration getGC()
    • getGraphics

      public Graphics getGraphics()
      Get the graphics context of the underlying image.
      Returns:
      The graphics context.
    • createRegion

      public Sprite createRegion(int x, int y, int width, int height, Object ref)
      Create a sub-region of this sprite. NOTE: This does not use caching.
      Specified by:
      createRegion in interface Sprite
      Parameters:
      x - The starting X coordinate.
      y - The starting Y coordinate.
      width - The region width.
      height - The region height.
      ref - The sprite reference.
      Returns:
      A new sprite.
    • draw

      public void draw(Graphics g, int x, int y)
      Draw the sprite onto the graphics context provided.
      Specified by:
      draw in interface Sprite
      Parameters:
      g - The graphics context on which to draw the sprite
      x - The x location at which to draw the sprite
      y - The y location at which to draw the sprite
    • draw

      public void draw(Graphics g, int destx, int desty, int x, int y, int w, int h)
      Draws the image.
      Specified by:
      draw in interface Sprite
      Parameters:
      g - the graphics context where to draw to
      destx - destination x
      desty - destination y
      x - the source x
      y - the source y
      w - the width
      h - the height
    • getHeight

      public int getHeight()
      Get the height of the drawn sprite.
      Specified by:
      getHeight in interface Sprite
      Returns:
      The height in pixels of this sprite
    • getReference

      public Object getReference()
      Get the sprite reference. This identifier is an externally opaque object that implements equals() and hashCode() to uniquely/repeatably reference a keyed sprite.
      Specified by:
      getReference in interface Sprite
      Returns:
      The reference identifier, or null if not referencable.
    • getWidth

      public int getWidth()
      Get the width of the drawn sprite.
      Specified by:
      getWidth in interface Sprite
      Returns:
      The width in pixels of this sprite
    • isConstant

      public boolean isConstant()
      Description copied from interface: Sprite
      Check whether the sprite won't change between draws.
      Specified by:
      isConstant in interface Sprite
      Returns:
      true if different draws of the sprite always have the same result.
    • getFrame

      public Sprite getFrame(int xIndex, int yIndex)
      Retrieves a single frame from the image.
      Parameters:
      xIndex - Horizontal index.
      yIndex - Vertical index.
      Returns:
      Cropped Sprite.