This is an old revision of the document!
Arkanoid
- Grundgerüst: arkanoid.zip
Grafik mit SVG
- Sehr flexibel, vektoriell, beliebig ausbaubar, kann mit z.B. Inkscape gezeichnet werden (siehe Vorlage paddle3x1.svg).
- Kann mit CSS «gestyled't» werden, Elemente können programmatisch hinzugefügt und gelöscht werden.
- Gradienten, Hintergründe, Filter (für Schatten z.B.) etc. sind möglich.
- Elemente können definiert (mit
defs
) und wiederverwendet werden (mituse
).
Game-Loop
- Variable
dt
(wie viele Sekunden sind vergangen). Daraus physikalisch Korrekt die Position aus der Geschwindigkeit etc. berechnen. - Kollisionen:
- Ball/Wand (easy)
- Ball/Block (anspruchsvoller, vor allem, wenn physikalisch korrekte Abpraller an den ecken des Rechtecks berechnet werden sollen).
- Ball/Paddle
Wegen Rundungsfehlern reicht eine einfache Reflexion des Geschwindigkeitsvektors manchmal nicht aus (es wird danach gleich wieder eine Kollision festgestellt). Dazu gibt es zwei Lösungsansätze:
- Man verschiebt das Objekt, so dass sicher keine Kollision stattfindet.
- Man rechnet in der Zeit zurück, bestimmt den genauen Zeitpunkt der Kollision und dann die neue Position, wenn die Kollision schon vorher stattgefunden hätte.