6.12
5.1 Animaatiot
Yksinkertaisin World-ohjelma on animaatio, jossa ajan kuluessa esitetään sarja kuvia. Ohjelmoija kirjoittaa funktion, joka tuottaa uuden kuvan, jokaista luonnolista lukua kohden. Tämä funktio annetaan argumenttina animate-funktiolle, joka suorittaa animoinnin.
procedure
(animate tee-kuva) → luonnollinen-luku
tee-kuva : (luonnollinen-luku -> kuva)
Avaa animaatioikkunan ja käynnistää kellon, joka tikittää 28 kertaa sekunnissa.
Jokaisella kellon tikityksellä animate kutsuu tee-kuva-funktiota ja antaa argumenttina tikitysten määrän animaation alusta laskettuna.
Kuvat esitetään avatussa animaatioikkunassa. Animaatio on käynnissä kunnes animaatioikkuna suljetaan punaisesta rastista.
Lopuksi animate-funktio palauttaa tikitysten määrän animaation lopussa.
Esimerkki:
(require 2htdp/image) (require 2htdp/universe) (define UFO (overlay/xy (ellipse 120 40 "solid" "violet") 30 -25 (circle 30 "outline" "black"))) (define (ufo-laskeutuu y) (place-image UFO 150 y (empty-scene 300 500))) (animate ufo-laskeutuu)