Android Open Source - candymem Base Item






From Project

Back to project page candymem.

License

The source code is released under:

GNU General Public License

If you think the Android project candymem listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package se.tube42.lib.item;
/*  ww  w .  j av a 2s. c o m*/
import com.badlogic.gdx.graphics.*;
import com.badlogic.gdx.graphics.g2d.*;

import se.tube42.lib.tweeny.*;
import se.tube42.lib.ks.*;
import se.tube42.lib.scene.*;

public abstract class BaseItem extends Item
{

    public static final int
          ITEM_S = 0,
          ITEM_R = 1,
          ITEM_X = 2,
          ITEM_Y = 3,
          ITEM_A = 4,
          ITEM_V = 5
          ;
    public static final int
          FLAG_VISIBLE    = 1,
          FLAG_TOUCHABLE  = 2,
          FLAG_TOUCH_STOP = 4,
          FLAG_DEAD       = 8
          ;

    public static final int
          STATE_NONE = 0
          ;

    // --------------------------------------------------------------

    protected float w, h;
    public float cr, cg, cb;
    public int flags;
    public int state;

    public BaseItem()
    {
        super(6);

        // temporary for now
        setColor(null);
        this.state = STATE_NONE;
        this.w = this.h = 64;
        this.flags = FLAG_VISIBLE /* | FLAG_TOUCHABLE */;
        reset();
    }

    public void reset()
    {
        setImmediate(ITEM_V, 0);
        setScale(1);
        setAlpha(1);
        setRotation(0);
        setPosition(0, 0);
    }

    public void setColor(float [] c)
    {
        if(c == null)
            cr = cb = cg = 1;
        else
            setColor(c[0], c[1], c[2]);
    }

    public void setColor(float r, float g, float b)
    {
        this.cr = r;
        this.cg = g;
        this.cb = b;
    }

    public void setColor(int rgb)
    {
        this.cr = ((rgb & 0xFF0000) >> 16) / 255f;
        this.cg = ((rgb & 0x00FF00) >>  8) / 255f;
        this.cb = ((rgb & 0x0000FF) >>  0) / 255f;

    }

    public void update(float dt)
    {
        // EMPTY
    }


    // --------------------------------------------

    public void setAlpha(float a)
    {
        setImmediate(ITEM_A, a);
    }

    public void setAlpha(float dur, float a)
    {
        set(ITEM_A, a).configure(dur, TweenEquation.LINEAR);
    }

    public void setScale(float s)
    {
        setImmediate(ITEM_S, s);
    }

    public void setScale(float dur, float s)
    {
        set(ITEM_S, s).configure(dur, TweenEquation.BACK_OUT);
    }

    public void setRotation(float r)
    {
        setImmediate(ITEM_R, r);
    }
    public void setRotation(float dur, float r)
    {
        set(ITEM_R, r).configure(dur, TweenEquation.LINEAR);
    }

    public void setPosition(float x, float y)
    {
        setImmediate(ITEM_X, x);
        setImmediate(ITEM_Y, y);
    }

    public void setPosition(float dur, float x, float y)
    {
        set(ITEM_X, x).configure(dur, TweenEquation.BACK_OUT);
        set(ITEM_Y, y).configure(dur, TweenEquation.BACK_OUT);
    }

    public float getScale() { return get(ITEM_S); }
    public float getRotation() { return get(ITEM_R); }
    public float getX() { return get(ITEM_X); }
    public float getY() { return get(ITEM_Y); }
    public float getAlpha() { return get(ITEM_A); }
    public float getW() { return w; }
    public float getH() { return h; }

    public void setSize(float w, float h)
    {
        this.w = w;
        this.h = h;
    }

    public void align(BaseItem bs, float align, float pad,
              boolean horiz, boolean vert)
    {
        float x = getX();
        float y = getY();

        if(horiz) x = bs.getX() + pad + (bs.w - w) * align;
        if(vert) y = bs.getY() + pad + (bs.h - h) * align;
        setPosition(x, y);
    }

    public void calcBounds()
    {
        // EMPTY
    }

    // --------------------------------------------

    public boolean hit(float x, float y)
    {
        // note: this function ignores current scale
        final float x0 = getX();
        final float y0 = getY();
        final float x1 = x0 + w;
        final float y1 = y0 + h;

        return x >= x0 && x <= x1 && y >= y0 && y <= y1;
    }

    public abstract void draw(SpriteBatch sb);

    public void setState(int state) { this.state = state; }
    public int getState() { return state; }

}




Java Source Code List

com.badlogic.gdx.backends.lwjgl.LwjglApplication.java
se.tube42.kidsmem.KidsMemoryApp.java
se.tube42.kidsmem.SystemHandler.java
se.tube42.kidsmem.android.MainActivity.java
se.tube42.kidsmem.data.Assets.java
se.tube42.kidsmem.data.Constants.java
se.tube42.kidsmem.data.Settings.java
se.tube42.kidsmem.data.UI.java
se.tube42.kidsmem.data.World.java
se.tube42.kidsmem.desktop.DesktopMain.java
se.tube42.kidsmem.item.Button.java
se.tube42.kidsmem.item.FireworkItem.java
se.tube42.kidsmem.item.GameStat.java
se.tube42.kidsmem.item.TileSprite.java
se.tube42.kidsmem.item.TopBar.java
se.tube42.kidsmem.logic.AssetHelper.java
se.tube42.kidsmem.logic.GameHelper.java
se.tube42.kidsmem.logic.SettingsHelper.java
se.tube42.kidsmem.logic.SizeHelper.java
se.tube42.kidsmem.scene.BackgroundScene.java
se.tube42.kidsmem.scene.GameScene.java
se.tube42.kidsmem.scene.MenuScene.java
se.tube42.kidsmem.service.ServiceProvider.java
se.tube42.lib.item.BaseItem.java
se.tube42.lib.item.BaseText.java
se.tube42.lib.item.ParticleItem.java
se.tube42.lib.item.PatchItem.java
se.tube42.lib.item.SpriteItem.java
se.tube42.lib.scene.LayerList.java
se.tube42.lib.scene.Layer.java
se.tube42.lib.scene.SceneManager.java
se.tube42.lib.scene.Scene.java
se.tube42.lib.service.AssetService.java
se.tube42.lib.service.JobService.java
se.tube42.lib.service.RandomService.java
se.tube42.lib.service.StorageService.java
se.tube42.lib.util.BaseApp.java
se.tube42.lib.util.UIC.java