Timer stoppt zu früh

Thori

Mitglied
Hallo,
ich versuche ein kleines Spiel zu programmieren. Dabei soll sich der Hintergrund wie bei Tilemaps um eine bestimmte Kachellänge bewegen, also wenn man kurz die Pfeil-nach-unten-Taste drückt bewegt dich der Hintergrund um eine Kachellänge nach oben. Beim ersten mal nach unten drücken funktioniert es, aber wenn ich die Position in die Konsole ausgeben lasse, hat sich der Hintergrund nur um 127 Pixel verrückt, und danach passiert beim Tastendrücken nichts mehr. Könnt ihr mir bitte helfen, ich versuche schon seit Stunden das Problem zu lösen.

Java:
public class Movement {
int i = 128
    public Movement(){
   
             bewegung = new Timer();
             bewegung.scheduleAtFixedRate(new TimerTask() {
                 @Override
                 public void run() {
      
                      if(Var.movedown == true && i >= 128) {         
                      
                        i = 0;
                        mapy = Var.y -128;
                      
                        move = new Timer();
                        move.scheduleAtFixedRate(new TimerTask() {
                            @Override
                            public void run() {
                                          
                                  i++;
                                  Var.y -- ;
                                  if(Var.y == mapy){
                                  bewegung.cancel();
                             
                                      }
                              }
                          }, 0, 400);
                                
                      
                      }
                    Var.Hinterg.setBounds(Var.x, Var.y, Var.screenwidth, Var.screenheight);
                 }
                 
           },0,400);
              
     }
}
 
@Thori
Ein Timer im Timer? Hm..
Über ein Timer sollte man wissen, dass dieser, solange aktiv, im vorgestelltem Rhythmus alles in ihm vorhandene sequentiell abläuft
 
Ich hab meinen Fehler bemerkt, ich habe den falschen Timer geschlossen. Danke für deine Hilfe🙂
Du, ich muss dir was schreiben.. Der "Programmierstil" ist mir bereits mehrmals unter die Augen gekommen und wenn dir das Wort "Qualität" nur etwas bedeutet, schau dem Youtuber nicht mehr zu und hole dir anstatt entsprechende Literatur..,
 
Alles klar, ich hab auch das Buch :,,Grundkurs Programmieren in Java", mein Problem ist nur, das ich nicht motiviert bin, wenn ich nicht so schnell Fortschritt sehe, ich glaube das geht jedem Mensche so, nur bei manchen mehr und bei anderen weniger. Mein Problem an dem Buch ist aber nicht das was besprochen wird, sondern der Ausdruck, da die Sätze nicht immer gut verständlich geschrieben wurden.
Ich werde versuchen meinen Programmierstil zu verbessern, aber das er Perfekt wird kann ich nicht versprechen. Trotzdem danke für die Antworten, auch aus so was lernt man viel 😉
 
mein Problem ist nur, das ich nicht motiviert bin, wenn ich nicht so schnell Fortschritt sehe
Ja, diese Krankheit grast weltweit um sich.. Nein, nicht allen geht es so 😉 Eins sollte man vielleicht noch wissen: wenn man etwas verstanden hat, muss es nicht zwangsläufig so sein, dass es auch immer so bleibt. Es entwickelt sich in einem rasanten Tempo weiter und gerade die Eigenschaft der Leidensfähigkeit gepaart mit Geduld sind essentiell
 
das ich nicht motiviert bin, wenn ich nicht so schnell Fortschritt sehe
Alles eine Frage der Betrachtung: man kann tonnenweise Müll in den Rechner tippen und kommt dann ggf. sogar zu einem Ergebnis. Mit Fortschritt hat so etwas in meinen Augen aber nichts zu tun, ganz im Gegenteil: nebenbei lernst Du den Müll auch noch, den Du da eintippst...
 

Zurück
Oben