Laden...

Snake: Schlange wird bei jedem Spielneustart schneller

Erstellt von kyr vor 13 Jahren Letzter Beitrag vor 13 Jahren 806 Views
K
kyr Themenstarter:in
2 Beiträge seit 2011
vor 13 Jahren
Snake: Schlange wird bei jedem Spielneustart schneller

Ich habe versucht Snake zu programmieren. Das Spiel funktioniert soweit eigentlich auch. Aber jedesmal wenn ich ein Spiel neustarte wird die Schlange schneller, was ich natürlich nicht will. Nur beim allerersten Spiel, wenn ich die Anwendung starte, hat die Schlange die richtige Geschwindigkeit. Es scheint als ob sie beim ersten newGame() die doppelte Geschwindigkeit und beim zweiten newGame() die dreifache Geschwindigkeit vom ersten Spiel hat.
Kann den Fehler irgendwie aber nicht finden. Hat jemand von euch eine Idee?

F
240 Beiträge seit 2006
vor 13 Jahren

Du rufst aus newGame() die startTimer() auf:


        public void startTimer()
        {
            snaketimer.Interval = 25;
            snaketimer.Tick += new EventHandler(snaketimer_Tick);
            snaketimer.Start();
        }

Jedes Mal, wenn du das Spiel neustartest, wird ein weiterer EventHandler hinzugefügt, somit wird snaketimer_Tick im ersten Spiel einmal pro Tick, im zweiten zweimal, im dritten dreimal etc aufgerufen. Da es auch ohne die Methode funktioniert, wirst du den Timer im Designer erstellt haben und dort auch die snaketimer_Tick als Handler hinzugefügt haben. Du brauchst die explizite Registrierung also nicht.

K
kyr Themenstarter:in
2 Beiträge seit 2011
vor 13 Jahren

Da hätte ich auch selbst draufkommen können, blöder fehler. Vielen dank.