= 2b68b1ba7b Removed animations from countdown
Removed player-speed-textView
2018-03-21 16:15:05 +01:00

93 lines
2.7 KiB
Java

package de.frajul.endlessroll.views;
import android.view.View;
import android.widget.TextView;
import java.util.concurrent.atomic.AtomicBoolean;
import de.frajul.endlessroll.R;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.main.GameLog;
import de.frajul.endlessroll.main.game.Game;
import de.frajul.endlessroll.sounds.SoundStream;
/**
* Created by Julian on 31.07.2016.
*/
public class Countdown {
private Game game;
private GameActivity gameActivity;
private TextView textView;
private SoundStream soundStream;
private AtomicBoolean running;
private int currentSeconds = 0;
private float time = 0;
public Countdown(Game game, GameActivity gameActivity, TextView textView) {
this.game = game;
this.gameActivity = gameActivity;
this.textView = textView;
this.textView.setTypeface(gameActivity.getTypeface());
running = new AtomicBoolean(false);
}
public void update(float delta) {
if (running.get()) {
time += delta;
if (time >= 1000 && currentSeconds == 0)
onNextSecondInUiThread(1);
if (time >= 2000 && currentSeconds == 1)
onNextSecondInUiThread(2);
if (time >= 3000 && currentSeconds == 2) {
gameActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setVisibility(View.GONE);
}
});
running.set(false);
game.countdownFinished();
}
}
}
public void start() {
reset();
running.set(true);
textView.setVisibility(View.VISIBLE);
soundStream = gameActivity.getSoundManager()
.playSound(gameActivity.getSoundManager().countdownSound);
}
public void stop() {
textView.setVisibility(View.GONE);
running.set(false);
if (soundStream != null)
gameActivity.getSoundManager().stopSound(soundStream);
}
private void reset() {
time = 0;
onNextSecondInUiThread(0);
}
private void onNextSecondInUiThread(final int second) {
gameActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
currentSeconds = second;
textView.setText((3 - second) + "");
int color = R.color.countdown1;
if (second == 1)
color = R.color.countdown2;
else if (second == 2)
color = R.color.countdown3;
textView.setTextColor(game.getContext().getResources().getColor(color));
}
});
}
}