lehrkraefte:blc:informatik:ffprg1-2024:raster-snake:move

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:ffprg1-2024:raster-snake:move [2024/05/23 05:23] – [setTimeout] Ivo Blöchligerlehrkraefte:blc:informatik:ffprg1-2024:raster-snake:move [2024/05/23 07:35] (current) – [Position der Schlange] Ivo Blöchliger
Line 1: Line 1:
 +{{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)]].