Bewegen der Schlange
setTimeout
setTimeout(funktionsName, millisekunden)
erlaubt es, nach eine bestimmten Zeit (in ms) eine Funktion aufrufen zu lassen.setTimeout
liefert 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.