Package kku.cs.fgl

Source Code of kku.cs.fgl.SpriteGroup$SFrame

package kku.cs.fgl;

import java.util.Enumeration;
import java.util.Vector;

import org.newdawn.slick.Color;
import org.newdawn.slick.Graphics;

import kku.cs.fgl.SpriteGroup.SFrame;

public class SpriteGroup {
  private int delay = -1;
  private int x, y;
  private Vector<SFrame> frames = new Vector<SFrame>();

  public class SFrame {
    SpriteCell cell;
    int x, y;
    boolean flip_h = false, flip_v = false;
    int delay = -1;

    public SFrame(SpriteCell cell, double x, double y, boolean flip_h,
        boolean flip_v, int delay) {
      super();
      this.cell = cell;
      this.x = (int) x;
      this.y = (int) y;
      this.flip_h = flip_h;
      this.flip_v = flip_v;
      this.delay = delay;
    }

    public void paint(Graphics g, int x, int y, Color filter) {
      x += this.x + SpriteGroup.this.x;
      y += this.y + SpriteGroup.this.y;
      cell.paint(g, x, y, flip_h, flip_v, filter);
    }

    public void paint(Graphics g, int x, int y, boolean hflip,
        boolean vflip, Color filter) {
      x += this.x + SpriteGroup.this.x;
      y += this.y + SpriteGroup.this.y;
      if (flip_h)
        hflip = !hflip;
      if (flip_v)
        vflip = !vflip;
      cell.paint(g, x, y, hflip, vflip, filter);
    }

    public SpriteCell getCell() {
      return cell;
    }

    public int getX() {
      return x+SFrame.this.x;
    }

    public int getY() {
      return y+SFrame.this.y;
    }

    public boolean isFlip_h() {
      return flip_h;
    }

    public boolean isFlip_v() {
      return flip_v;
    }

    public int getDelay() {
      if(delay<0)return SpriteGroup.this.delay;
      return delay;
    }

    public int getWidth() {
      return cell.getWidth();
    }

    public int getHeight() {
      return cell.getHeight();
    }

    public Color getPixel(int x, int y) {
      return cell.getPixel(x-getX(), y-getY());
    }
   
   
  }

  public SFrame add(SpriteCell cell, float x, float y, boolean flip_h,
      boolean flip_v, int delay) {
    SFrame frame = new SFrame(cell, x, y, flip_h, flip_v, delay);
    frames.add(frame);
    return frame;
  }
  public void add(SpriteCell ... cells) {
    for(SpriteCell c:cells){
      frames.add(new SFrame(c,0,0,false,false,-1));     
    }
  }

  public Enumeration<SFrame> elements() {
    return frames.elements();
  }

  public SFrame get(int index) {
    return frames.get(index);
  }

  public int size() {
    return frames.size();
  }

  public SFrame[] array() {
    return frames.toArray(new SFrame[size()]);
  }

  public int getDelay() {
    return delay;
  }

  public void setDelay(int delay) {
    this.delay = delay;
  }

  public int getX() {
    return x;
  }

  public void setX(int x) {
    this.x = x;
  }

  public int getY() {
    return y;
  }

  public void setY(int y) {
    this.y = y;
  }
}
TOP

Related Classes of kku.cs.fgl.SpriteGroup$SFrame

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.