/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.entities; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.math.Vector2; public class GameObject extends Sprite { protected boolean visible = true; private float velocityX; private float velocityY; private boolean markedForRemoval; public GameObject(TextureAtlas.AtlasRegion region) { super(region); } public GameObject() { super(); } public GameObject(Texture texture) { super(texture); } public GameObject(Texture texture, int u, int v, int u2, int v2) { super(texture, u, v, u2, v2); } @Override public void draw(SpriteBatch spriteBatch) { if (visible) { super.draw(spriteBatch); } } @Override public void draw(SpriteBatch spriteBatch, float alphaModulation) { if (visible) { super.draw(spriteBatch, alphaModulation); } } public void update(float timeDelta) { setX(getX() + (velocityX * timeDelta)); setY(getY() + (velocityY * timeDelta)); } public void setVisible(boolean state) { visible = state; } public boolean isVisible() { return visible; } public void setVelocity(int x, int y) { velocityX = x; velocityY = y; } public void setOpacity(float opacity) { Color color = getColor(); color.a = opacity; setColor(color); } public float getOpacity() { return getColor().a; } public void setPosition(Vector2 position) { setPosition(position.x, position.y); } public void setWrap(Texture.TextureWrap wrapX, Texture.TextureWrap wrapY) { Texture texture = getTexture(); if (wrapX == Texture.TextureWrap.Repeat) { setU(0f); setU2(getWidth() / texture.getWidth()); } if (wrapY == Texture.TextureWrap.Repeat) { setV(0f); setV2(getHeight() / texture.getHeight()); } texture.setWrap(wrapX, wrapX); } public void markToRemove(boolean b) { markedForRemoval = b; } public boolean isMarkedForRemoval() { return markedForRemoval; } public boolean shouldBeCulled() { return true; } }