package de.swagner.paxbritannica.mainmenu;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.math.Vector2;
import de.swagner.paxbritannica.Resources;
public class Countdown extends Sprite {
public boolean finished = false;
private boolean showed = true;
private float fade = 0.0f;
private int cnt = 5;
float delta;
private Vector2 position = new Vector2();
public Countdown(Vector2 position) {
this.position = position;
changeTexture(5);
}
public void reset() {
changeTexture(5);
finished = false;
showed = true;
fade = 0.0f;
cnt = 5;
this.setRotation(0);
this.setScale(1f);
this.setPosition(position.x, position.y);
this.setColor(0, 0, 0, 0);
}
private void changeTexture(int id) {
switch (id) {
case 5:
this.set(Resources.getInstance().cnt5);
break;
case 2:
this.set(Resources.getInstance().cnt2);
break;
case 3:
this.set(Resources.getInstance().cnt3);
break;
case 4:
this.set(Resources.getInstance().cnt4);
break;
default:
this.set(Resources.getInstance().cnt1);
break;
}
this.setRotation(0);
this.setScale(1f);
this.setPosition(position.x, position.y);
this.setColor(0, 0, 0, 1);
}
@Override
public void draw(Batch batch) {
delta = Math.min(0.06f, Gdx.graphics.getDeltaTime());
super.draw(batch);
if (cnt < 1) {
finished = true;
this.setColor(1, 1, 1, 0);
return;
}
if (showed) {
fade = Math.min(fade + delta * 2.f, 1);
} else {
fade = Math.max(fade - delta * 2.f, 0);
}
this.setColor(1, 1, 1, fade);
if (fade == 1) {
showed = !showed;
}
if (fade == 0) {
showed = !showed;
--cnt;
changeTexture(cnt);
}
}
}