G
Geforcer
Neues Mitglied
- 0
Hallo Leute. versuche gerade eine Animierte Zeitleiste zu machen.
Das ganze läuft über die Screenrefresh methode. laut Debugger sind die Werte richtig nur bleibt der ganze Bildschirm Schwarz solange ich in der Schleife bin. danach stürzt es ab.
Wenn ich die Schleife auskommentiere und der currenttimeleft variable einen festen wert zuweise läuft alles wie geplant.
pxheight ist eine emtric variable über die gesamte höhe in px vom Bildschirm. mein FrameLayout bartime geht auch über die ganze höhe.
Alles ist in einer Activity geschrieben. Kann es sein dass ich meine "Game Engine" von der UI trennen muss? wenn ja wie mache ich das?
kann mir einer helfen?
Das ganze läuft über die Screenrefresh methode. laut Debugger sind die Werte richtig nur bleibt der ganze Bildschirm Schwarz solange ich in der Schleife bin. danach stürzt es ab.
Wenn ich die Schleife auskommentiere und der currenttimeleft variable einen festen wert zuweise läuft alles wie geplant.
pxheight ist eine emtric variable über die gesamte höhe in px vom Bildschirm. mein FrameLayout bartime geht auch über die ganze höhe.
Alles ist in einer Activity geschrieben. Kann es sein dass ich meine "Game Engine" von der UI trennen muss? wenn ja wie mache ich das?
kann mir einer helfen?
Code:
@Override
protected void onStart(){
gameStart();
}
//Spielstart methode
private void gameStart (){
gamerunning = true;
points = 0;
round = 0;
startround();
}
//next round
private void startround() {
round++;
startTime = System.currentTimeMillis();
int roundpoints = 0;
settime = 60000;
currenttime = 0;
while (currenttime <= settime) {
screenrefresh();
}
}
private void screenrefresh() {
//Point view refresh
TextView points = (TextView)findViewById(R.id.textView1);
points.setText(Integer.toString(this.points));
//time refresh
currenttime = (System.currentTimeMillis() - startTime) ;
float currenttimeleft = settime - currenttime;
//getheight time bar = pxheight
double barpersecond = (pxheight / settime);
// timebar refresh
FrameLayout bartime = (FrameLayout)findViewById(R.id.timebar);
LayoutParams time = bartime.getLayoutParams();
time.height = (int) (barpersecond * currenttimeleft);
bartime.setLayoutParams(time);
}
Zuletzt bearbeitet: