Sprite.java :  » UnTagged » poliandroid » com » ilarele » Android Open Source

Android Open Source » UnTagged » poliandroid 
poliandroid » com » ilarele » Sprite.java
package com.ilarele;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.Rect;

public class Sprite
{
  protected Rect bitmap_subset;
  protected int bmp_height;
  protected int bmp_width;
  protected Point canvas_start;
  protected Rect canvas_subset;
  protected int frame_height;
  protected int frame_width;
  protected GameLevel level;
  protected final static int STEP = 6;

  protected Bitmap mBmp; // bitmap cu toate imaginile
  protected int yOffset;

  public Sprite(Point canvas_start)
  {
    this.canvas_start = canvas_start;
    bitmap_subset = new Rect();
    canvas_subset = new Rect();
  }

  public void animate()
  {
    if (yOffset > STEP)
      yOffset -= STEP;
    else if (yOffset < -STEP)
      yOffset += STEP;
    else
    {
      yOffset = 0;
    }
  }

  public void draw(Canvas canvas, Point canvas_offset, int frame)
  {
    if (frame < 0)
      return;

    // from frame
    final Rect lBitmap_subset = bitmap_subset;
    lBitmap_subset.left = (frame * frame_width) % bmp_width;
    lBitmap_subset.top = ((frame * frame_width) / bmp_width) * frame_height;
    lBitmap_subset.right = lBitmap_subset.left + frame_width;
    lBitmap_subset.bottom = lBitmap_subset.top + frame_height;

    final Rect lCanvas_subset = canvas_subset;
    lCanvas_subset.left = canvas_start.x + 36 * canvas_offset.y + 9 * canvas_offset.x + BloxorzThread.getSX();
    lCanvas_subset.top = canvas_start.y + yOffset + -3 * canvas_offset.y + 15 * canvas_offset.x
        + BloxorzThread.getSY();
    lCanvas_subset.right = lCanvas_subset.left + frame_width;
    lCanvas_subset.bottom = lCanvas_subset.top + frame_height;

    canvas.drawBitmap(mBmp, lBitmap_subset, lCanvas_subset, null);
    animate();
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.