package fr.wisper.entities;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.*;
import com.badlogic.gdx.scenes.scene2d.Actor;
import fr.wisper.utils.Config;
public class Bullet extends Actor {
public static final int BLACK_BULLET = 0;
public static final int BLUE_BULLET = 1;
public static final int RED_BULLET = 2;
protected ParticleEffect particleEffect;
protected boolean isParticleOn = true;
protected float offset;
public Bullet(String particleFile) {
particleEffect = new ParticleEffect();
init(particleFile);
}
public void setPosition(float x, float y) {
particleEffect.setPosition(x - offset, y);
}
public void draw(Batch batch, float delta) {
if (isParticleOn) {
particleEffect.draw(batch, delta);
}
}
public boolean isComplete() {
return particleEffect.isComplete();
}
public float getOffset() {
return offset;
}
public void stopDraw() {
isParticleOn = false;
}
private void init(String particleFile) {
particleEffect.load(Gdx.files.internal(particleFile), Gdx.files.internal("particles"));
particleEffect.setPosition(Config.APP_WIDTH / 2, Config.APP_HEIGHT / 2);
particleEffect.start();
offset = particleEffect.getEmitters().first().getXOffsetValue().getLowMax() / 2;
}
@Override
public float getX() {
return (int)particleEffect.getEmitters().first().getX();
}
@Override
public float getY() {
return (int)particleEffect.getEmitters().first().getY();
}
public void dispose() {
stopDraw();
particleEffect.dispose();
}
}