5.2.2 big-bang lauseet
(to-draw päivitä-näyttö)
|
|
| päivitä-näyttö | | : | | (tila -> kuva) |
|
Kertoo mitä funktiota (päivitä-näyttö) pitää kutsua, jotta ohjelman näyttö päivittyy.
Näyttö päivitetään yleensä jokaisen tapahtuman (näppäimen painallus, hiiren käyttö, kellon tikitys)
jälkeen. Kuvan koko määräytyy ensimmäisenä piirretyn kuvan mukaan.
Tällaisia funktioita kutsutaan ohjelmoinnissa callback-funktioiksi ja big-bang:iä
message loop:ksi.
(on-tick kellon-tikitys)
|
|
| kellon-tikitys | | : | | (tila -> tila) |
|
Kertoo mitä funktiota (kellon-tikitys) pitää kutsua, jotta ohjelman tila päivittyy
ajan kuluessa. Funktiolle annetaan ohjelman nykyinen tila ja se palauttaa tilan,
josta tulee ohjelman uusi tila. Kello tikittää 28 kertaa sekunnissa.
(on-tick kellon-tikitys nopeus)
|
|
| kellon-tikitys | | : | | (tila -> tila) |
| nopeus | | : | | positiivinen-reaaliluku |
|
Kertoo mitä funktiota (kellon-tikitys) pitää kutsua, jotta ohjelman tila päivittyy
ajan kuluessa. Funktiolle annetaan ohjelman nykyinen tila ja se palauttaa tilan,
josta tulee ohjelman uusi tila. Kello tikittää nopeus kertaa sekunnissa.
(on-key näppäimen-painallus)
|
|
|
Kertoo mitä funktiota (näppäimen-painallus) pitää kutsua, kun käyttäjä on painanut
jotain näppäintä. Funktiolle annetaan ohjelman nykyinen tila sekä painettua näppäintä kuvaava
merkkijono ja se palauttaa tilan, josta tulee ohjelman uusi tila.
(on-mouse hiiren-käyttö)
|
|
| hiiren-käyttö | | : | | (tila kokonaisluku kokonaisluku mouse-event? -> tila) |
|
Kertoo mitä funktiota (
hiiren-käyttö) pitää kutsua, kun käyttäjä on käyttänyt hiirtä.
Funktiolle annetaan ohjelman nykyinen tila, hiiren
x ja
y koordinaatit
sekä hiiren tapahtuma (
mouse-event?) ja se palauttaa tilan, josta tulee ohjelman uusi tila.
Huomaa, että jos hiiren tapahtuma on "leave" tai "enter" hiiren koordinaatit
voivat olla myös animaatioikkunan ulkopuolella eli ne voivat olla negatiivisia tai
suurempia kuin animaatioikkunan koko.
(stop-when lopetus?)
|
|
| lopetus? | | : | | (tila -> totuusarvo) |
|
Kertoo mitä funktiota (lopetus?) pitää kutsua, kun varmistetaan voiko ohjelman jo sulkea.
Tätä funktiota kutsutaan automaattisesti näytönpäivityksen yhteydessä. Jos funktio palauttaa
#true, ohjelma suljetaan, erityisesti kellon tikitys lakkaa eikä näppäimen painalluksia
tai hiiren käyttöä tapahtumia enää välitetä eteenpäin. big-bang palauttaa nyt ohjelman
viimeisen tilan.
}
(stop-when lopetus? viimeinen-näytön-päivitys)
|
|
| lopetus? | | : | | (tila -> totuusarvo) |
| viimeinen-näytön-päivitys | | : | | (tila -> kuva) |
|
Kertoo mitä funktiota (
lopetus?) pitää kutsua, kun varmistetaan voiko ohjelman jo sulkea.
Tätä funktiota kutsutaan automaattisesti näytönpäivityksen yhteydessä. Jos funktio palauttaa
#true, kutsutaan
viimeinen-näytön-päivitys-funktiota ja ohjelma suljetaan,
erityisesti kellon tikitys lakkaa eikä näppäimen painalluksia tai hiiren käyttöä tapahtumia
enää välitetä eteenpäin.
big-bang palauttaa nyt ohjelman viimeisen tilan.