| Next revision | Previous revision |
| lehrkraefte:blc:informatik:ffprg1-2024:raster-snake:move [2024/05/22 15:11] – created Ivo Blöchliger | lehrkraefte:blc:informatik:ffprg1-2024:raster-snake:move [2024/05/23 07:35] (current) – [Position der Schlange] Ivo Blöchliger |
|---|
| | {{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)]]. |
| |