On this page:
animate
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)

image

 

image

 

image