Punktzahl in AndEngine dynamisch ändern Wie in anderen Spielen
Frage
Ich kenne den genauen Begriff für das, wonach ich suche, nicht. Ich entwickle ein Spiel und zeige Punkte in anderen Spielszenen.Ich möchte die Punktzahl (tatsächlich die aktuelle Punktzahl in der vorherigen Punktzahl hinzufügen) so ändern, dass sie wie in anderen Spielen nacheinander geändert wird. Wenn zum Beispiel die vorherige Punktzahl in 10 und die aktuelle Punktzahl 10 ist, möchte ich sie beim Hinzufügen mit der Geschwindigkeit 10 11 12 13 14 15 ... so zeigen.Und wenn 20 erreicht ist, wird ein Ton wie tiiiinnnnnnnn abgespielt.Ich möchte eins nach dem anderen hinzufügen. Ich hoffe, ich habe meine Frage geklärt, bitte geben Sie eine Lösung. Danke
Lösung
Ein anderer Weg, der für mich funktioniert.
private TimerHandler timerHandler;
private long startTime = 120000; // 2 minutes for example
private void createTimer() {
final float period = 1; //one second
this.getEngine().registerUpdateHandler(timerHandler = new TimerHandler(period, new ITimerCallback() {
public void onTimePassed(final TimerHandler pTimerHandler) {
timerHandler.reset();
startTime = (long) (startTime - (period * 1000));
int seconds = (int) ((startTime / 1000) % 60);
int minutes = (int) ((startTime / 1000) / 60);
timerText.setText(String.format("%d:%02d", minutes, seconds));
}
}));
}
Andere Tipps
Versuchen Sie dies,
Verwenden Sie für Ihren Zweck veränderbaren Text,
ChangeableText textTime = new ChangeableText(int xPosition, int yPosition, Font mFont, "00");
Starten Sie dann einen Timer und geben Sie ihm die Verzögerung für die Geschwindigkeit, die Sie zum Ändern möchten
Angenommen, Sie möchten Ihren Text von ändern
int x= 10 bis int y= 20
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
x++;
textTime.setText(tm);
if(x==y) {
timer.cancel();
}
}
}, 0, 100); // you can change this delay with your own