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();
}
}
|