LPFP-1.0: app/GlossSimulate.hs
{-# OPTIONS -Wall #-}
import Graphics.Gloss
displayMode :: Display
displayMode = InWindow "My Window" (1000, 700) (10, 10)
-- updates per second of real time
rate :: Int
rate = 2
disk :: Float -> Picture
disk radius = ThickCircle (radius / 2) radius
redDisk :: Picture
redDisk = Color red (disk 25)
type State = (Float,Float)
initialState :: State
initialState = (0,0)
displayFunc :: State -> Picture
displayFunc (x,y) = Translate x y redDisk
updateFunc :: Float -> State -> State
updateFunc dt (x,y) = (x + 10 * dt, y - 5 * dt)
main :: IO ()
main = simulate displayMode black rate initialState displayFunc
(\_ -> updateFunc)