Bewegen der Schlange
setTimeout
setTimeout(funktionsName, millisekunden)erlaubt es, nach eine bestimmten Zeit (in ms) eine Funktion aufrufen zu lassen.setTimeoutliefert eine id, über die der zukünftige Aufruf gestoppt werden kann. → Speichern in VariabletimeoutId.- Hinweis: JavaScript ist single threaded. D.h. es wird nie Code unterbrochen, um die gewünschte Funktion aufzurufen. Die wird dann halt etwas später aufgerufen.
- In
snake.js: Eigene Funktionstep, die einen Spielschritt ausführt. - Variable
timeToNextStep, die die Anzahl Millisekunden bis zum nächsten Schritt enthält. - Am Ende der Funktion
step, den timeout wieder setzten (und id speichern!) - Funktion
startGame, die den ersten timeout setzt.
Position der Schlange
- Erst mal reichen x,y Koordinaten.
- Fortbewegen mit dem Vektor
dirs[newDirection] - Überprüfen:
- Auf dem Spielfeld? (mit
meinRaster.isOn(a,b)). Sonst gameOver. - Auf leerem Feld? (mit ''meinRaster.getValue(a,b)). Sonst gameOver.
- Neue Position, Felder setzen, Drehungen der Bilder berechnen.