package org.ripple.power.ui.projector.action.sprite.effect; import org.ripple.power.config.LSystem; import org.ripple.power.ui.graphics.LGraphics; import org.ripple.power.ui.graphics.LImage; import org.ripple.power.ui.graphics.geom.RectBox; import org.ripple.power.ui.projector.Config; import org.ripple.power.ui.projector.action.sprite.ISprite; import org.ripple.power.ui.projector.core.LObject; public class OutEffect extends LObject implements ISprite { /** * */ private static final long serialVersionUID = 1L; private LImage image; private boolean visible, complete; private float alpha; private int width, height; private int type, multiples; private RectBox limit; public OutEffect(String fileName, int code) { this(new LImage(fileName), code); } public OutEffect(LImage t, int code) { this(t, LSystem.screenRect, code); } public OutEffect(LImage t, RectBox limit, int code) { this.image = t; this.type = code; this.width = t.getWidth(); this.height = t.getHeight(); this.multiples = 1; this.limit = limit; this.visible = true; } public void update(long elapsedTime) { if (!complete) { switch (type) { case Config.DOWN: move_45D_down(multiples); break; case Config.UP: move_45D_up(multiples); break; case Config.LEFT: move_45D_left(multiples); break; case Config.RIGHT: move_45D_right(multiples); break; case Config.TDOWN: move_down(multiples); break; case Config.TUP: move_up(multiples); break; case Config.TLEFT: move_left(multiples); break; case Config.TRIGHT: move_right(multiples); break; } if (!limit.intersects(x(), y(), width, height)) { complete = true; } } } public boolean isComplete() { return complete; } public int getHeight() { return width; } public int getWidth() { return height; } public void createUI(LGraphics g) { if (!visible) { return; } if (!complete) { if (alpha > 0 && alpha < 1) { g.setAlpha(alpha); } g.drawImage(image, x(), y()); if (alpha > 0 && alpha < 1) { g.setAlpha(1); } } } public void setAlpha(float a) { this.alpha = a; } public float getAlpha() { return alpha; } public LImage getBitmap() { return image; } public RectBox getCollisionBox() { return getRect(x(), y(), width, height); } public int getMultiples() { return multiples; } public void setMultiples(int multiples) { this.multiples = multiples; } public boolean isVisible() { return visible; } public void setVisible(boolean visible) { this.visible = visible; } public void dispose() { if (image != null) { image.dispose(); image = null; } } }