Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:ffprg2-2024:tetris [2025/01/06 11:28] – [setTimeout im Kontext eines Instanz (Objekt)] Ivo Blöchliger | lehrkraefte:blc:informatik:ffprg2-2024:tetris [2025/01/20 12:36] (current) – [Code zum Starten] Ivo Blöchliger | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| ===== Code zum Starten ===== | ===== Code zum Starten ===== | ||
| - | * {{lehrkraefte: | + | * {{lehrkraefte: |
| Was schon läuft: | Was schon läuft: | ||
| * Darstellung im Raster | * Darstellung im Raster | ||
| * Abfrage Tastatur | * Abfrage Tastatur | ||
| - | * Abfrage Touch | + | * Abfrage Touch (nur 1 Player) |
| - | * Einige Methoden der Klasse | + | * Tetris, |
| - | * translate, ok, rotate | + | |
| ===== Vorgehen ===== | ===== Vorgehen ===== | ||
| * Code in '' | * Code in '' | ||
| Line 32: | Line 31: | ||
| </ | </ | ||
| + | ==== Callback für Game-Handling ==== | ||
| + | Ziel: Code in ui.js soll aufgerufen werden, wenn etwas Spezielles im Tetris-Objekt passiert, z.B. | ||
| + | * Game over | ||
| + | * mehr als eine Zeile auf einmal abgebaut wurde (damit dem Gegner welche «untergeschoben» werden können). | ||
| + | |||
| + | Vorgehen: Beim Anlegen eines Tetris-Objekts wird ein Object mit Callbacks übergeben. | ||
| + | <code javascript> | ||
| + | function unterschieben(tetrisInstanz, | ||
| + | // Tu was mit der Tetris-Instanz | ||
| + | } | ||
| + | function machMalFertig() { | ||
| + | // Tu wat | ||
| + | } | ||
| + | |||
| + | tetris = new Tetris(raster, | ||
| + | </ | ||
| + | |||
| + | In der Tetris-Klasse sieht die Sache dann wie folgt aus: | ||
| + | <code javascript> | ||
| + | // im Constructor die callbacks speichern: | ||
| + | | ||
| + | |||
| + | // in der Funktion, die Linien abbaut, den Callback aufrufen | ||
| + | | ||
| + | </ | ||