{{backlinks>.}} ====== 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 Variable ''timeoutId''. * 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 Funktion ''step'', 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. ===== Screencast ===== [[https://bldsg-my.sharepoint.com/:v:/g/personal/ivo_bloechliger_ksbg_ch/EUf5xIsPM1pOsc_ek98UWhsBqAEMUpGdBpc3gwhn83YGUQ?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&e=pTusFD|Sharepoint (nur für St. Galler)]] oder [[https://fginfo.ksbg.ch/~ivo/videos/informatik/ffprog24/snake/03-bewegen.mp4|einfaches https (weltweit)]].