On this page:
world
mouse-event-kind
big-bang
on-tick-event
on-key-event
on-mouse-event
on-redraw
end-of-time

7 Animationen: "world.ss"

Note: This is documentation for the world.ss teachpack that goes with the German textbook Die Macht der Abstraktion.

Dieses Teachpack ermöglicht, kleine Animationen und Spiele zu programmieren. Es enthält alle Prozeduren aus dem image-Teachpack.

world : contract
Eine Welt (Name: world) ist die Repräsentation des Zustands, der durch die Animation abgebildet wird.

(one-of "enter" "leave" "motion" "left-down" "left-up" "middle-down" "middle-up" "right-down" "right-up")

Eine Mausereignis-Art (Name: mouse-event-kind) bezeichnet die Art eines Maus-Ereignisses:

"enter" bedeutet, daß der Mauszeiger gerade in das Fenster hinein bewegt wurde. "leave" bedeutet, daß der Mauszeiger gerade aus dem Fenster heraus bewegt wurde. "motion" bedeutet, daß der Mauszeiger innerhalb des Fensters bewegt wurde. Die anderen Zeichenketten bedeuten, daß der entsprechende Mausknopf gedrückt oder losgelassen wurde.

big-bang : (natural natural number world -> (one-of #t))
Der Aufruf (big-bang w h n w) erzeugt eine Leinwand mit Breite w und Höhe h, startet die Uhr, die alle n Sekunden tickt, und macht w zur ersten Welt.

on-tick-event : ((world -> world) -> (one-of #t))
Der Aufruf (on-tick-event tock) meldet tock als Prozedur an, die bei jedem Uhren-Tick aufgerufen wird, um aus der alten Welt eine neue zu machen.

on-key-event : ((world string -> world) -> (one-of #t))
Der Aufruf (on-key-event change) meldet change als Prozedur an, die bei jedem Tastendruck aufgerufen wird, um aus der alten Welt eine neue zu machen. Dabei wird als Argument eine Zeichenkette übergeben, welche die Taste darstellt, also "a" für die A-Taste etc., sowie "up", "down", "left", und "right" für die entsprechenden Pfeiltasten und "wheel-up" für die Bewegung des Mausrads nach oben und "wheel-down" für die Bewegung des Mausrads nach unten.

on-mouse-event : ((world natural natural mouse-event-kind -> world) -> (one-of #t))
Der Aufruf (on-mouse-event change) meldet change als Prozedur an, die bei jedem Mausereignis aufgerufen wird, um aus der alten Welt eine neue zu machen. Die change-Prozedur wird als (change w x y k) aufgerufen. Dabei ist w die alte Welt, x und y die Koordinaten des Mauszeigers, und k die Art des Mausereignisses.

on-redraw : ((world -> image) -> (one-of #t))
Der Aufruf (world->image world->image) meldet die Prozedur world->image an, die aus einer Welt ein Bild macht, das auf der Leinwand dargestellt wird.

end-of-time : (string -> world)
Diese Prozedur hält die Welt an und druckt ihr Argument in der REPL aus.